環境
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