LoginSignup
18
16

More than 5 years have passed since last update.

Spark CSVの導入

Posted at

環境

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

18
16
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
18
16