Ich habe eine große Menge an JSON
Dateien, die ich in Parquet
umwandeln muss. Sie sehen etwas wie folgt aus:JSON in Parquet mit EMR/Spark umwandeln
{
"foo": "bar",
"props": {
"prop1": "val1",
"prop2": "val2"
}
}
Und ich brauche sie in eine Parquet
Datei, deren Struktur zu transformieren, ist dies (verschachtelte Eigenschaften der obersten Ebene gemacht werden und erhalten _
als Suffix):
foo=bar
_prop1=val1
_prop2=val2
Jetzt ist hier der Haken: nicht alle der JSON
Dokumente haben die gleichen Eigenschaften. Also, wenn doc1 prop1
und prop2
hat, aber doc2 hat prop3
, muss die endgültige Parquet
Datei die drei Eigenschaften (einige von ihnen werden für einige der Datensätze Null sein).
Ich verstehe, dass Parquet
eine schema
vorne muss, so dass meine aktuellen Plan ist:
- Traverse alle
JSON
Dateien - Infer ein
schema
pro Dokument (mit Drachen, like this) - Merge alle
schemas
- Beginnen Sie mit dem Schreiben der
Parquet
Dieser Ansatz erscheint mir sehr kompliziert, langsam und fehleranfällig. Ich frage mich, ob es eine bessere Möglichkeit gibt, dies unter Verwendung Spark
zu erreichen.