在hive中解析这个json

wj8zmpe1  于 2021-06-02  发布在  Hadoop
关注(0)|答案(2)|浏览(367)

我对json完全陌生。我在其中一个配置单元列中有下面的json。我不知道如何安排{}和[],但尽了最大努力。

{
  "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应该被解析为如下所示。需要可以这样做的配置单元查询。

谢谢,

xytpbqjk

xytpbqjk1#

我是通过在每个键上使用get\u json\u对象来实现的。谢谢~

ozxc1zmp

ozxc1zmp2#

你可以用 get_json_object 或者 json_tuple 示例:src\u json table是一个单列(json)、单行表:

+----+
                               json
+----+
{"store":
  {"fruit":\[{"weight":8,"type":"apple"},{"weight":9,"type":"pear"}],
   "bicycle":{"price":19.95,"color":"red"}
  },
 "email":"amy@only_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

更多信息

相关问题