Sparkでデータ処理プログラムを書くためのAPIには、RDDとDataFrameの二種類がある。2つのAPIを用いてwordcountを書いてみる。wordcountは、テキスト中の単語の出現回数を数えるプログラムであり、分散データ処理の必修課題である。 RDDは低レベルなAPIで、データのレコードにはスキーマがない。データ処理は、map関数やflatMap関数などリスト処理的な高階関数によって記述する。reduceByKeyなどいくつかの操作は、レコードが(key, value)のタプルであることを要求するが、その検査はジョブ投入時ではなく、タスク実行時に行われる。総じて、古式ゆかしいMapReduceの感覚で扱える。 DataFrameは高レベルのAPIで、データのレコードにはスキーマが適用される。データ処理は、SQLによって記述するか、あるいはホスト言語上のDSL(以下クエリDSL