日曜日, 1月 10, 2016

Spark - ファイル名をキー,内容をバリューとしてファイルを読み込み

SparkContextのwholeTextFiles()を使うと,ファイル名をキー,内容をバリューのRDDを作ることが出来る.以下の例では,HDFS上に空白区切りで数字が羅列されている複数のファイルを一括で読み込んでそれぞれの算術平均を求めている.

val in = sc.wholeTextFiles("/user/neko32/spark/study3")
val rez = in mapValues {
    case d =>
    val nums = d.trim.split(" ").map(_.toInt)
    nums.sum / nums.size
}
rez foreach println

上記のコードをファイルに保存した後spark-shellから以下のコマンドでロード.

:load ./avgcal.scala

0 件のコメント: