如何从Elasticsearch读取数据到Spark?

时间:2016-03-14 08:22:18

标签: java python scala elasticsearch apache-spark

我试图通过python将数据从ElasticSearch读取到Apache Spark。

以下是从官方文件中复制的代码。

$ ./bin/pyspark --driver-class-path=/path/to/elasticsearch-hadoop.jar
conf = {"es.resource" : "index/type"}    
rdd = sc.newAPIHadoopRDD("org.elasticsearch.hadoop.mr.EsInputFormat",    "org.apache.hadoop.io.NullWritable", "org.elasticsearch.hadoop.mr.LinkedMapWritable", conf=conf)
rdd.first()   

以上可以从相应的索引中读取数据,但它正在读取整个索引。

您能告诉我如何使用查询来限制读取范围吗?

另外,我没有找到关于此问题的文档。例如,似乎conf dict控制读取范围,但ES文档只是说它是一个Hadoop配置,仅此而已。我去Hadoop配置没有找到关于ES的相应密钥和值。你知道一些更好的文章吗?

1 个答案:

答案 0 :(得分:2)

您可以在配置中添加es.query设置,如下所示:

conf.set("es.query", "?q=me*")

这里有一个更详细的documentation如何使用它。