Ich versuche verschiedene Möglichkeiten, einen Datensatz in einem Array von Datensätzen abzufragen und vollständige Zeile als Ausgabe anzuzeigen.Abfrage eines verschachtelten Array in Parquet Records
Ich weiß nicht, welches geschachtelte Objekt String "pg" hat. Aber ich möchte nach einem bestimmten Objekt fragen. Ob das Objekt "pg" hat oder nicht. Wenn "pg" existiert, möchte ich diese komplette Zeile anzeigen. Wie ohne specfying das Objekt "spark SQL-Abfrage" auf verschachtelte Objekte schreiben index.So ich möchte nicht den Index children.name verwenden
Mein Avro Record:
{
"name": "Parent",
"type":"record",
"fields":[
{"name": "firstname", "type": "string"},
{
"name":"children",
"type":{
"type": "array",
"items":{
"name":"child",
"type":"record",
"fields":[
{"name":"name", "type":"string"}
]
}
}
}
]
}
Ich bin mit Spark-SQL Kontext zum Abfragen des gelesenen Datenrahmens. Also, wenn Eingang
Row no Firstname Children.name
1 John Max
Pg
2 Bru huna
aman
Output poq zurückkehren sollte 1, da es Zeile hat, wo ein Objekt von children.name pg ist.
val results = sqlc.sql("SELECT firstname, children.name FROM nestedread where children.name = 'pg'")
results.foreach(x=> println(x(0), x(1).toString))
Die obige Abfrage funktioniert nicht. aber es funktioniert, wenn ich Kinder [1] .name abfrage.
Ich möchte auch wissen, dass, wenn ich eine Reihe von Datensätzen filtern und dann explodieren kann. Anstatt zuerst zu explodieren und eine große Anzahl von Zeilen zu erstellen und dann zu filtern.
Kinder ist ein Array, children.name bedeutet nichts. children [1] .name bedeutet, dass Sie auf das erste Objekt in diesem Array zugreifen und das name-Attribut lesen. – RoyaumeIX
Ja. Aber ich möchte nach einem bestimmten Objekt fragen. Ob das Objekt pg hat oder nicht. Wenn pg existiert, möchte ich diese komplette Zeile anzeigen. Wie schreibt man "sql query" auf geschachtelte Objekte, ohne den Objektindex zu spezifizieren. – pg20
Haben Sie dies überprüft: http://bender.io/2013/09/22/returning-hierarchical-data-in-a-single-sql-query/? – RoyaumeIX