当我使用PySpark将Elasticsearch数据加载到Spark DataFrame中时,出现以下错误:
py4j.protocol.Py4JJavaError:调用o48.load时发生错误。 :org.elasticsearch.hadoop.EsHadoopIllegalArgumentException:找不到测试索引的映射-之前需要一个映射 使用Spark SQL
这是我的代码:
df = spark \
.read \
.format("org.elasticsearch.spark.sql") \
.option("es.nodes","localhost") \
.option("es.port",9200) \
.option("es.nodes.wan.only","true") \
.load("test-index/intensity")
我检查了索引是否存在。
我使用elasticsearch-hadoop-6.4.0.jar
运行PySpark作业。
这是我使用GET请求为端点http://localhost:9200/test-index
在Postman中获得的内容:
{
"test-index": {
"mappings": {
"intensity": {
"properties": {
"alarm_id": {
"type": "keyword"
},
"person_name": {
"type": "keyword"
}
}
}
}
}
}