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 .两边关联 就可以得到最终结果.


---------------------------------------------------------------------------------
我是秉寒,为了财务自由,让我们加倍努力工作,学习,积极健康的生活,做好财富管理和投资

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值