使用Spark读取ES数据
因为工作需要,所以针对性学习了一波ES查询,并总结了一波?。
读取数据主要分为6个步骤
- 创建SparkSession对象;
- 同时设置conf参数,包含数据获取方式 ES服务器地址 ES端口号;
- Query查询语句编写,ES的查询方式非常丰富,许多博客已存在,这里就不展示了 ;
- 通过ESSpark.esRDD方式读取数据 ,需传入三个参数;
- 最后就是对RDD进行操作了;
不啰嗦,直接上代码
import org.apache.spark.rdd.RDD
import org.apache.spark.sql.{SparkSession}
import org.elasticsearch.spark.rdd.EsSpark
object ReadES {
def main(args: Array[String]): Unit = {
val spark = SparkSession
.builder()
.appName("Spark Read ES")
.master("local")
.config("pushdown", "true")
.config("es.nodes", "ES服务器地址")
.config("es.port", "ES端口号")
.getOrCreate()
val query =
s"""
|{
| "query":{"match_all":{}},
| "_source":["chatMessages"] //chatMessages是所需查询的字段,貌似没啥用
|}