Spark CSVの導入


環境

mac osx 10.9.5
scala 2.10.4

spark-csvのざっくりとした紹介

・Apache sparkでCSVデータをパースできるようにする
・パースしたものはSpark SQLやDataFrameで使えるようになる

github

必要なものと今回使用したバージョン

spark-core 1.4.0
spark-sql 1.4.0
spark-csv 1.0.3

build.sbtの抜粋

libraryDependencies ++= Seq(
  "org.apache.spark" %% "spark-core" % "1.4.0",
  "org.apache.spark" %% "spark-sql" % "1.4.0",
  "com.databricks" %% "spark-csv" % "1.0.3"
)

実際のコード


// initialize spark
val conf: SparkConf = new SparkConf().setMaster("local").setAppName("test")
val sc: SparkContext = new SparkContext(conf)
val sqlContext: SQLContext = new SQLContext(sc)

// 読み込みたいファイルのパスをload()の引数に設定する
val df = sqlContext.read.format("com.databricks.spark.csv").option("header", "true").load("xxxx/yyyy/zzzz.csv")

これで指定したファイルのCSVデータを解析。
optionの引数はCSVデータのヘッダ(データの1行目にある項目名)を含めるかどうか。

解析したCSVを実際に取得

※「name」「address」の2項目を持つCSVがあったとして


// RDD取得
val rdd = df.select("name", "address")

// 中身を見てみる
rdd.foreach(pritnln)

簡単な使い方は以上になります。
これが便利で実際にmysqlに投げるようなSQLが実行でき、
GROUP BYできたり、JOINできたりもします。
時間あるときにサンプル載せたいと思います。

動かない等ありましたらご指摘下さいm(__)m