[英]EsHadoopIllegalArgumentException: Cannot detect ES version Spark-ElasticSearch example
[英]Spark-elasticsearch fetch filtered records from elasticsearch using spark
我有一张地图,如下所示:
Map("index1" -> List["a", "b", "c"])
我的弹性数据有一个名为“名称”的字段。 我想从 spark 查询弹性搜索并返回所有具有“a”、“b”、“c”作为“name”字段值的记录。
我不想对弹性查询中的名称进行硬编码。
session.read.format("org.elasticsearch.spark.sql")
.option("es.query", query)
.load(indexName)
有人可以帮我构建一个接受字符串列表的动态查询。
val listOfIds = List("a", "b")
val strings = listOfIds.mkString("[\"", "\",\"", "\"]")
val query = s"""{"query":{"filtered":{"query":{"match_all":{}},"filter":
{"terms":{"genres":${strings}}}}}"""
习惯了并解决了它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.