Spark elasticsearch连接器:如何选择_id字段?

Pat*_*ick 5 sql elasticsearch apache-spark

我正在使用 Spark Elasticsearch 连接器,我想从 ES 中提取一些字段以及 _id。

myquery = """{"query":..., """
val df = spark.read.format("org.elasticsearch.spark.sql")
                 .option("query", myquery)
                 .option("pushdown", "true")
                 .load("myindex/mytype")
                 .limit(10) 
                 .select("myfield","_id") 
Run Code Online (Sandbox Code Playgroud)

不幸的是,_id 字段无法识别:

AnalysisException: u'cannot resolve \'`_id`\' given input columns: 
[query, size, @version, @timestamp, 
 sourceinfo, signaletic, document, metadata, fields, aggs]
Run Code Online (Sandbox Code Playgroud)

通过此映射,我可以选择例如 document.{fieldA}、sourceinfo.{fieldB} 等,但不能选择 _id。就好像它在映射中处于较高级别一样。

知道如何获得这个特定的字段吗?

小智 -1

Spark SQL不支持一些特殊字符,例如_,\xe2\x82\xb9。请尝试将特殊字符替换为其他字符,例如“Id”。

\n