Ich habe Tabelle mit jsons:hive explodieren Liste von json-string
CREATE TABLE TABLE_JSON (
json_body string
);
Json hat Struktur:
{ obj1: { fields ... }, obj2: [array] }
ich von Array alle Elemente auswählen möchten, aber ich kann es nicht.
Zum Beispiel kann ich alle Felder aus erstem Objekt erhalten:
SELECT f.fields...
FROM (
SELECT q1.obj1, q1.obj2
FROM TABLE_JSON jt
LATERAL VIEW JSON_TUPLE(jt.json_body, 'obj1', 'obj2') q1 AS obj1, obj2
) as json_table2
LATERAL VIEW JSON_TUPLE(TABLE_JSON.obj1, 'fields...') f AS fields...;
Aber mit Array dieser Methode nicht funktioniert.
Ich habe versucht,
...
LATERAL VIEW explode(json_table2.obj2) adTable AS arr;
Aber obj2 zu verwenden - mit Array-String. Wie transformiere ich String-JSON in Array und explodiere es?