Hive 解析 json,json array
在大数据处理中经常遇到业务端发送json 数据到 table 里 的情况 ,这个需要数据开发工程师能够准备对json string 进行解析 ,并重新定义新表的结构 。
在网络上看到很多网友提到 get_json_object ,json_tuple 的使用和案例 ,结合 替换和分组函数可以比较容易的对json 数据完成解析 。
不久前我们遇到一个json 类似 格式如下 :
{
home_id : 10000 ,
person:[
{
1p:0001,
1name:dddd
expandInfo:[
{
1p:0001,
age:18,
desc:'love boy',
reas:ssss,
salary: 10
},
{
1p:0001,
age:28,
desc:'love girl',
reas:ssss,
salary: 10
}
]
},
{
2p:0002,
2name:dddd
expandInfo:[
{
2p:0002,
age:18,
desc:'love boy',
reas:ssss,
salary: 1
},
{
2p:0002,
age:28,
desc:'love girl',
reas:ssss,
salary: 10
}
]
},
{
3p:0003,
3name:xxxx
expandInfo:[
{
3p:0003,
age:18,
desc:'love boy',
reas:ssss,
salary: 0
},
{
3p:0003,
age:28,
desc:'love girl',
reas:ssss,
salary: 10
}
]
}
]
}
上面数据的基本解析 一个家庭有三个人且每个人都记录了不同年龄段的薪资 ,那么组合后应该有六条数据
网络上的提供的解决方案是按照 },{ 划分,对当前这个数据显然是无能为力的 。
现在的解决方案是 :
单独把 expandInfo 区块拿出来 使用上面的解析方法,并把结果保存到 一个单独的表中 t1
同时 把 expandInfo 区块 从原数据区中使用replace方法 替换掉 ,再使用上面的方法解析 ,结果保存到 t2
因为 t1 t2 都有相对明确的主外键关系 1p,2p,3p 代表唯一id .两边关联 就可以得到最终结果.
---------------------------------------------------------------------------------
我是秉寒,为了财务自由,让我们加倍努力工作,学习,积极健康的生活,做好财富管理和投资
更多推荐
所有评论(0)