Apache Beam 入門(1) ~テキスト読み書き~
全体の目的
Apache Beam の簡単なプログラムを作成して,仕組みを理解していく
今回の目的
ローカルのテキストファイルを読み込んでそのまま書き出すプログラムを作成する
本編
環境
IntelliJ
IntelliJ IDEA 2017.3.3 (Ultimate Edition)
Build #IU-173.4301.25, built on January 16, 2018
Licensed to kaito iwatsuki
Subscription is active until January 24, 2019
For educational use only.
JRE: 1.8.0_152-release-1024-b11 x86_64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
Mac OS X 10.12.6
IntelliJ IDEA 2017.3.3 (Ultimate Edition)
Build #IU-173.4301.25, built on January 16, 2018
Licensed to kaito iwatsuki
Subscription is active until January 24, 2019
For educational use only.
JRE: 1.8.0_152-release-1024-b11 x86_64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
Mac OS X 10.12.6
Maven : 3.5.2
手順
準備
- File => New => Project...
Maven を選択し,
Project SDK
は1.8
<Next>GroupId
とArtifactId
を入力し <Next> (今回はどちらもbeamSample
)Project name
を入力し <Finish> (今回はbeamSampleProject
)~/beamSample/src/main/java/SimpleBeam.java
を追加
import org.apache.beam.sdk.Pipeline;
import org.apache.beam.sdk.io.TextIO;
import org.apache.beam.sdk.options.PipelineOptions;
import org.apache.beam.sdk.options.PipelineOptionsFactory;
import org.apache.beam.sdk.values.PCollection;
public class SimpleBeam {
public static void main(String[] args){
PipelineOptions options = PipelineOptionsFactory.create();
Pipeline p = Pipeline.create(options);
// テキスト読み込み
PCollection<String> textData = p.apply(TextIO.read().from("Sample.txt"));
// テキスト書き込み
textData.apply(TextIO.write().to("wordcounts"));
// Pipeline 実行
p.run().waitUntilFinish();
}
}
依存関係が解決されていないライブラリは適宜,command
+ クリックして画像のようにAddしてください.
-
~/beamSample/Sample.txt
を追加(読み取り用テキスト)
実行
- 右上のプルダウンメニューから
Edit Configurations...
を選択
- 左上の
+
=> Maven を選択
- 任意の
Name
を選択 -
Working directory
が~/beamSample
に設定 -
Command line
にcompile exec:java -Dexec.mainClass=SimpleBeam
を入力- こちらを参考にさせていただきました
- <OK>
- 右上のプルダウンが作成したものになっているか確認し,実行ボタンをクリック
出力が以下のようになっており,~/beamSample
ディレクトリ内に`wordcounts-.*
ファイルが作成されていたら成功
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 4.827 s
[INFO] Finished at: 2018-02-27T02:46:10+09:00
[INFO] Final Memory: 21M/373M
[INFO] ------------------------------------------------------------------------
Process finished with exit code 0
つまりそうなところ
今回は特筆して躓きそうなところは無いけれど,IntelliJの中身の理解が浅いので,未知のエラーで焦ることは何度かあった.けれど,大半は依存関係が解決できてないのが原因だったので,Add_Maven
すればなんとかなった.
次回以降
今回は動かしただけになってしまったので,次回以降はMapReduceの考え方のおさらいも兼ねて簡単なPipelineを構成したい.
Author And Source
この問題について(Apache Beam 入門(1) ~テキスト読み書き~), 我々は、より多くの情報をここで見つけました https://qiita.com/kaito__/items/bf534adf6089a4de6d33著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .