5 votes

Connecteur Spark elasticsearch : comment sélectionner le champ _id ?

J'utilise le connecteur spark elasticsearch et je veux extraire de ES certains champs plus le _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") 

Malheureusement, le champ _id n'est pas reconnu :

AnalysisException: u'cannot resolve \'`_id`\' given input columns: 
[query, size, @version, @timestamp, 
 sourceinfo, signaletic, document, metadata, fields, aggs]

Avec ce mappage, je peux sélectionner par exemple document.{fieldA}, sourceinfo.{fieldB}, etc. mais pas _id. C'est comme s'il était à un niveau trop élevé dans le mappage.

Savez-vous comment obtenir ce champ particulier ?

-1voto

madhu kotagiri Points 98

Certains des caractères spéciaux comme _,₹ ne sont pas supportés dans spark SQL. Veuillez essayer de remplacer les caractères spéciaux par un autre caractère comme "Id".

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X