如何从Spark中读取多个Elasticsearch索引?

时间:2018-04-24 10:43:31

标签: scala apache-spark elasticsearch spark-dataframe

我需要从Elasticsearch的多个索引中读取数据。但所有这些指数都具有相同的数据结构。

例如:

val df1 = spark.read.format("org.elasticsearch.spark.sql")
              .option("query", myquery)
              .option("pushdown", "true")
              .load("news_01/myitem")

val df2 = spark.read.format("org.elasticsearch.spark.sql")
              .option("query", myquery)
              .option("pushdown", "true")
              .load("news_02/myitem")

如果我获得索引名称数组["news_01", "news_02"]会怎样?

如何避免像现在一样创建df1df2

1 个答案:

答案 0 :(得分:1)

鉴于ElasticSearch允许您在搜索请求期间同时定位多个索引,您可以执行以下操作:

val df = spark.read.format("org.elasticsearch.spark.sql")
              .option("query", myquery)
              .option("pushdown", "true")
              .load("news_01,news_02")