在嵌套的JSON上创建Hive表

时间:2015-08-12 15:04:06

标签: json hadoop hive

我试图根据hadoop中的一些JSON数据在hive中创建一个表。困难的部分是我有一个嵌套的JSON,其中数据在key:value对中没有干净地定义:

{  
   "trafficSource":{  
      "source":"(direct)",
      "medium":"(none)"
   },
   "device":{  
      "browser":"(not set)",
      "browserVersion":"(not set)",
      "operatingSystem":"(not set)",
      "operatingSystemVersion":"(not set)",
      "isMobile":false,
      "flashVersion":"(not set)",
      "javaEnabled":false,
      "language":"(not set)",
      "screenColors":"(not set)",
      "screenResolution":"(not set)",
      "deviceCategory":"desktop"
   }

   "hits":[  
      {  
         "customDimensions":[  
            {  
               "index":"1",
               "value":"2"
            },
            {  
               "index":"2",
               "value":"0"
            }
         ],
      }
   ],
}

我希望在hive表中为" hits.customDimensions"中的每个值创建一个列。 JSON。每个数组都包含索引和该索引的值。例如,index = 1的列将命名为" User_ID"价值将来自"价值"该数组中的参数。

有没有简单的方法来创建这个HIVE表?

谢谢!

1 个答案:

答案 0 :(得分:0)

您可以在hive中使用json_tuple UDF来解析json中的属性,但我无法找到解析嵌套json的方法。

以下内容可以帮助您解析json:

How do you make a HIVE table out of JSON data?

要将嵌套的json放入Hive表中,我建议你使用python& amp解析json文件。 Hadoop流式传输并将其转换为扁平化结构。从那里开始会很容易。