我试图根据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表?
谢谢!
答案 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流式传输并将其转换为扁平化结构。从那里开始会很容易。