Я пытаюсь извлечь некоторые данные из эластичного поиска с помощью pyspark. Я хочу извлечь только несколько полей (не все) из документов. Итак, я делаю почтовый запрос от программного обеспечения «Почтальон» (для целей тестирования) со следующими URL и телом. Это дает идеальный результат, как и ожидалось. Но когда я использую то же тело со спарк-кодом, он извлекает все поля из указанных документов, что нежелательно. Может кто-нибудь сказать, что может быть причиной такого странного поведения? Заранее спасибо!
Spark версия 2.3, Elasticsearch версия 6.2, тип телосложения почтальона = application / json
Вот что я делаю с почтальоном:
`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()
`