2016-10-07 8 views
0

私はJSONを初めて使っています。私は、HIVEカラムの1つにJSON以下を持っています。私は{}と[]を手配する方法はわかりませんが、ベストを尽くしました。このJSONを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" 
    } 
    ] 
} 

上記のJSONは、以下のように解析する必要があります。このようにすることができるHiveクエリが必要です。

enter image description here おかげで、

+0

どのようにあなたのテーブルを作成しましたか? JSONserdeを使用しましたか? createコマンドを投稿してください。 –

+0

私はテーブルを作成していない、私はまだそれを作成しています。 – subro

答えて

0

あなたはget_json_object又はjson_tuple

例を使用することができる:src_jsonテーブルは、単一の列(JSON)、単一行のテーブルである:

+----+ 
                               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

私は、各キーでget_json_objectを使用してこれを行いました。ありがとう〜

+0

あなたのクエリを共有できますか? – Prashanth