Elasticsearch -pyspark : not getting specific fields from document (getting all fields) even after specifying with spark

标签 elasticsearch pyspark

我正在尝试使用 pyspark 从 elasticsearch 中提取一些数据。我只想从文档中提取几个字段(不是全部)。因此,我正在从软件“Postman”(用于测试目的)发出一个发布请求,其中包含以下 url 和正文。它按照预期提供了完美的输出。但是,当我将相同的主体与 Spark 代码一起使用时,它会从指定文档中提取所有字段,这是不需要的。谁能说出这种奇怪行为的原因是什么?提前致谢!

Spark 版本 2.3,Elasticsearch 版本 6.2,postman 正文类型 = application/json

这就是我对 postman 所做的事情:

`url : localhost:9200/test-index4/school/_search`

`body : 
{
    "query":
     {
         "ids":
           {
               "values":["8","9","10"]
           }
     },
     "_source":
     {
         "includes":["name"]
     }
}`

以下是我使用 pyspark 所做的事情:

`body = "{"query":{"ids":{"values":["8","9","10"]}},"_source":{"includes":["name"]}}"
df = self.__sql_context.read.format("org.elasticsearch.spark.sql") \
            .option("es.nodes", "localhost") \
            .option("es.port", "9200") \
            .option("es.query", body) \
            .option("es.resource", "test-index4/school") \
            .option("es.read.metadata", "true") \
            .option("es.read.metadata.version", "true") \
            .option("es.read.field.as.array.include", "true") \
            .load()

`

最佳答案

尝试在配置中设置es.read.field.include,并将值设置为逗号分隔的字段列表。 例如“es.read.field.include”,“field1,field2,...”

关于 Elasticsearch -pyspark : not getting specific fields from document (getting all fields) even after specifying with spark,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50269795/

相关文章:

Elasticsearch Go 嵌套查询

elasticsearch - 无法在 Mac 上启动 ElasticSearch

apache-spark - 将数据框结果插入配置单元表时出现 Spark 异常

amazon-s3 - Spark - 加载许多小 csv 需要很长时间

python - 如何在jupyter中像pandas Dataframe一样打印Pyspark Dataframe

java - Spark submit --files 无法将信任库文件复制到 google dataproc 中的工作节点

elasticsearch - elasticsearch的日志格式是什么?

python - TransportError 400 Elasticsearch 包含大量术语

apache-spark - "one Executor per Core vs one Executor with multiple Core"的区别

apache-spark - 如何将 PySpark 连接到 Bigquery