8. (例)Word Count
val conf = new SparkConf().setAppName("sample batch")
val spark = new SparkContext(conf)
// 処理を定義
val rdd = spark.textFile("s3n://foo/bar/a.log")
.flatMap(_ split " ")
.map(_ -> 1)
.reduceByKey(_ + _)
// 実行
rdd foreach println
スペースで分割
文字とカウントのタプルに変換
文字ごとに集計
まるでコレクション操作のよう!!
9. Sparkの変革
2009年 2013年 2014年 2016年
ASFへ寄贈
UC BerkeleyのAMPLabで
開発スタート
1.0リリース
2.0
予定
▲DataFrame Since 1.3
▼Dataset Since 1.6
10. DataFrame Since 1.3
● built on SQL
● Dynamically typed
val sqlContext = new SQLContext(...)
val df: DataFrame = sqlContext.read.json("people.json")
df.filter(df("age") < 20)
11. Dataset Since 1.6
● Statically typed
val sqlContext = new SQLContext(...)
val ds: Dataset[Person] = sqlContext.read.json("people.json")
.as[Person]
ds.filter(_.age < 20)
case class Person(
name: String, age: Int)