gpt4 book ai didi

hadoop - Pyspark es.query 仅在默认情况下有效

转载 作者:可可西里 更新时间:2023-11-01 15:53:32 27 4
gpt4 key购买 nike

在 pypspark 中,我可以获得从 ES 返回的数据的唯一方法是保留 es.query 默认值。这是为什么?

es_query = {"match" : {"key" : "value"}}
es_conf = {"es.nodes" : "localhost", "es.resource" : "index/type", "es.query" : json.dumps(es_query)}
rdd = sc.newAPIHadoopRDD(inputFormatClass="org.elasticsearch.hadoop.mr.EsInputFormat",keyClass="org.apache.hadoop.io.NullWritable",valueClass="org.elasticsearch.hadoop.mr.LinkedMapWritable", conf=es_conf)
...
rdd.count()
0
rdd.first()
ValueError: RDD is empty

然而这个查询(默认)似乎有效

es_query = {"match_all" : {}}
...
rdd.first()
(u'2017-01-01 23:59:59)

*我已经通过直接查询 elastic search 来测试查询,它们有效,所以 spark/es-hadoop 有问题。

最佳答案

默认情况下,API 在您的实际查询前添加“query”:{}。对于 elasticsearch,您发送的查询看起来像

"query" :{
"match" : {"key" : "value"}
}

这是无效的。

关于hadoop - Pyspark es.query 仅在默认情况下有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46206397/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com