Wie kann ich Tabelle in Hive mit rohen JSON-Feld (keine Analyse, als Klartext) definieren?Raw Json Feldtyp in Bienenstock
Für die folgende s3-Datei:
{"first_field":1, "json_field": {"a":{"b":"c"}, "d":"e"}, "sec_field":4}
{"first_field":2, "json_field": {"m":"cv", "d":"e"}, "sec_field":5}
{"first_field":3, "json_field": {"k":1, "d":"e"}, "sec_field":6}
Ich wünsche, dass die folgende Abfrage:
select first_field, json_field, sec_field from web.json_table;
zurück um:
1 {"a":{"b":"c"}, "d":"e"} 4
2 {"m":"cv", "d":"e"} 5
3 {"k":1, "d":"e"} 6
Ich habe versucht, die Tabellen wie folgt zu definieren:
CREATE EXTERNAL TABLE web.json_table(
first_field integer,
json_field string,
sec_field integer
)
ROW FORMAT SERDE 'org.apache.hive.hcatalog.data.JsonSerDe'
location 's3n://my-bucket';
aber die Abfrage Rückkehr:
hive> select first_field, json_field, sec_field from web.json_table;
OK
1 { NULL
2 { NULL
3 { NULL
zu extrahieren Ja, ich bin mir bewusst, dass t Option, aber es ist nicht das, was ich mir wünsche. Da mein verschachtelter JSON nicht vorhersehbar ist. Ich möchte eine solche Abfrage mit Presto haben: wählen Sie get_json_object (json_field, "$ .a") von web.json_table; – Ran