Contenu connexe
Similaire à Spark in small or middle scale data processing with Elasticsearch
Similaire à Spark in small or middle scale data processing with Elasticsearch (20)
Spark in small or middle scale data processing with Elasticsearch
- 1. Spark in small or middle
scale data processing with
Elasticsearch
2015-06-01 第10回elasticsearch勉強会
- 17. Elasticsearch for Hadoop
● elasticsearch-hadoopに含まれるApache
Spark Supportを使うことで、Sparkのストレー
ジとしてElasticsearchを使える
HadoopからESへ投入
Hadoop上でESから抽出
- 20. インデックスを結合
val conf = new SparkConf().setAll(Seq(
ES_RESOURCE -> "job/sample",
ES_QUERY -> "?q=*:*"
))
val spark = new SparkContext(conf)
import SparkContext._
val rdd = spark.esRDD.leftOuterJoin(spark.esRDD(Map(
ES_RESOURCE -> "geo/sample",
ES_QUERY -> "?q=*:*"
))).flatMap { case (_id, (_source, geo)) =>
geo.map { x =>
_source ++ Map("workLocation" -> x("workLocation"))
}
}
jobインデックスに
geoインデックスを外部結合
- 31. コード例
val spark = new StreamingContext(new SparkConf, Minutes(1))
val dstream = spark.textFileStream("s3n://hoge/test")
.flatMap(_ split "n")
.map(...)
.transform(... RDDに対する処理 ...)
.foreachRDD { rdd =>
// saving data only if DStream is not empty
if(!rdd.isEmpty) rdd.saveToEs(Map(
ES_NODES -> "localhost",
ES_RESOURCE -> "job/sample"
))
}
バッチと同様、RDDに対して
saveToEsを実行