2016-10-07 2 views
0

Ich bin komplett neu in JSON. Ich habe unter JSON in einer der HIVE-Spalten. Ich bin mir nicht sicher, wie ich {} und [] arrangieren soll, sondern habe mein Bestes gegeben.Parsing dieses JSON in HIVE

{ 
    "main_key": 
    [ 
    { 
     "type":"RESPONSIBLE", 
     "lastName":"John" 
    }, 
    { 
     "ids": 
     [ 
     { 
      "id":"001815015", 
      "qual":"PIN" 
      }, 
      { 
      "id":"592852900", 
      "qual":"TIN" 
      } 
     ], 
      "type":"BILLING", 
      "lastName":"Joe" 
    }, 
    { 
     "ids": 
     [ 
       { 
        "id":"002329056", 
        "qual":"PIN" 
       } 
     ], 
        "type":"SVC", 
        "lastName":"Jame" 
    } 
    ] 
} 

Oben JSON sollte wie folgt analysiert werden. Need Hive-Abfrage, die so machen kann.

enter image description here Danke,

+0

Wie haben Sie Ihre Tabelle erstellt? Hast du JSONserde benutzt? Bitte poste deinen create-Befehl. –

+0

Ich habe keine Tabelle erstellt, ich muss sie noch erstellen. – subro

Antwort

0

Sie können mit get_json_object oder json_tuple

Beispiel: src_json Tisch eine einzige Spalte (json), einreihig Tabelle:

+----+ 
                               json 
+----+ 
{"store": 
  {"fruit":\[{"weight":8,"type":"apple"},{"weight":9,"type":"pear"}], 
   "bicycle":{"price":19.95,"color":"red"} 
  }, 
 "email":"[email protected]_for_json_udf_test.net", 
 "owner":"amy" 
} 
+----+ 



hive> SELECT get_json_object(src_json.json, '$.owner') as owner FROM src_json; 
amy 
  
hive> SELECT get_json_object(src_json.json, '$.store.fruit\[0]') as fruitdata FROM src_json; 
{"weight":8,"type":"apple"} 
  
hive> SELECT get_json_object(src_json.json, '$.non_exist_key') FROM src_json; 
NULL 

more info

0

Ich habe dies getan, indem Sie get_json_object für jeden einzelnen Schlüssel verwenden. Danke ~

+0

Können Sie Ihre Anfrage teilen? – Prashanth