Spark 读取elasticsearch数据

最近在搞大数据的时候,遇到一个案例。之前的一些数据是设置死的。现在要改成动态读取es上的数据,然后在进行处理,就写了这么一个读取elasticsearch索引数据的例子

object SparkReadFromES {
def main(args: Array[String]): Unit = {

val conf = new SparkConf().setAppName("DecisionTree1").setMaster("local[2]")
//设置elasticsearch配置
conf.set("cluster.name", "es")
conf.set("es.index.auto.create", "true")
conf.set("es.nodes", "es集群IP。多个以,分割")
conf.set("es.port", "9200")
val sc = new SparkContext(conf)

//设置一个查询条件,我在这里是查询全部的
val query:String =s"""{

"query" : {
"match_all" : {}

}
}"""
//按查询条件直接查询索引和type下的数据
val a = EsSpark.esRDD(sc, “索引名/type”,query)
val code =a.map(x=>{

//需要读取的elasticsearch索引中的字段,这样就可以读取字段并写成rdd格式。
  val y = x._2.get("cal_rule").getOrElse("110611")
  y
}).filter(_!=null)

}
}

在做spark和elasticsearch的交互时,需要添加spark和elasticsearch的maven依赖,直接下载jar包。

    
        org.elasticsearch
        elasticsearch-spark-20_2.11
        5.4.0
    

你可能感兴趣的:(elasticsearch,spark)