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

How to read from multiple Elasticsearch indices in Spark?

我需要从 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

鉴于 ElasticSearch 允许您在搜索请求期间同时定位多个索引,您可以这样做:

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