reduceByKey処理と遅延評価
最後にreduceByKeyのアクション処理を行う部分です。作成したRDD[temp]に対してreduceByKeyを行い、値を集計しています。

RDDにアクション処理を実行すると、DAGの依存関係を遡って実際の処理が行われます。この時に初めてディスク上のファイルが読み込まれ、依存関係に従って実際の処理が行われます。
DAGとしてRDDに対する変換操作のみを記録しておき、実際にデータ処理を行う際にメモリ上で実際の処理を行うこの仕組みを遅延評価と呼びます。
下記は遅延評価のイメージです。

Sparkでは遅延評価を行うことで不要なデータがメモリ上に極力乗らないような工夫がされています。
また、詳細は別の回で取り上げますが、DAGにRDDの処理の流れを記録しておくことで、障害時にも依存関係をさかのぼってRDDを作成できるようになり、耐障害性も確保しています。
まとめ
今回、Sparkのローカルの環境を作成し、CSVを使った簡単なSparkのプログラミングを行いました。また、RDD、DAG、遅延評価といったSparkの重要な概念についても簡単にではありますが説明を行いました。Sparkのその他の概念についても折に触れていきたいと思っています。
Sparkのプログラミング部分に着目ということで、次回はSparkSQL、SparkStreaming、MLlib、GraphXなど、Sparkの各コンポーネントを使ったプログラミングを行いたいと思います。
【PR】

