java - 如何从Elasticsearch读取数据到Spark?

标签 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 字典似乎控制读取范围,但 ES 文档只是说它是 Hadoop 配置,仅此而已。我去Hadoop配置没有找到关于ES的相应键和值。您知道关于此的一些更好的文章吗?

最佳答案

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

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

这里有更详细的documentation关于如何使用它。

关于java - 如何从Elasticsearch读取数据到Spark?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35982550/

相关文章:

python - 通过重复最后一个元素来填充张量( tensorflow )

scala 多 sbt 项目 : object is not a member of package, 未找到类型

scala - Intellij-idea 12 Scala 支持 : it consumes almost 300% of my cpu resources

java - 多个 <c :when> inside <c:choose>

python - 将参数发送到远程 PC 的命令提示符

java - 现在有什么新方法可以在 Java 中以微秒为单位准确获取当前时间?

python - 蒸馏器迁移误差 flask

scala - 在 Scala 中,需要将可能为空的值与可能为 "null"的搜索字符串进行比较

java - 如何在 Java 中绘制交互式图形/线条?

Java:是否可以说变量类型必须满足多重继承/接口(interface)要求