2016-07-31 3 views
0

Ich habe eine Ebene Textdatei in HDFS alsWie wird eine Flat-Datei mit JSON-String als Teil jeder Zeile in einer Hive-Tabelle gespeichert und abgefragt?

44, Vereinigtes Königreich, { "name": { "name1": "John", "name2": "heiraten", "name3": "michel" }, "Früchte": {"fruit1": "apple", "fruit2": "orange"}}, 31-07-2016

91, INDIEN, {"name": {"name1": "Ram “, "name2": "Sam"}, "Früchte": {}}, 31-07-2016

und wollen dies mit Schema in einem Bienenstock-Tabelle speichern, wie

Tabellendaten (SerNo int, Land string, Detail-String, Datum String)

Dann schaffen, was die Tabellendefinition sein sollte, so dass { "name": .....} als eine Spalte kommen als "Detail" und Ruhe mit anderen? Was sollte der Spaltentrenner sein? so dass ich Abfrage Spalte mit get_json_object udf zusammen mit anderen Spalten abfragen kann.

Vielen Dank.

Antwort

0

Hive funktioniert gut mit JSON-Formatdaten, bis die JSON-Datei nicht auf vielen Ebenen verschachtelt ist. In diesem Fall ist es besser, Ihre JSON-Datei flacher zu machen.

siehe https://pkghosh.wordpress.com/2012/05/06/hive-plays-well-with-json/

Hier können Sie erklärt Antwort finden Sie in Frage stellen.

+0

Dank @siddhartha. Aber ich möchte JSON-String-Teil in einer separaten Spalte speichern, so dass ich UDF zur Abfrage verwenden kann. Aber wenn ich die ganze Zeichenfolge als eine Spalte setze, wie Sie sagen, wie können wir dann Serno, Land und Datum mit get_json_object UDF abfragen, da diese nicht Teil der JSON-Zeichenfolge sind. –

Verwandte Themen