hive解析json字段

1、get_json_object

格式:get_json_object(待解析的字段,‘.$要取的属性’)

eg:待解析的字符串: {“code”:“0001”,“dept”:“市场部”},分别获取code 和dept

select  get_json_object('{"code":"0001","dept":"市场部"}','$.code') as code
       ,get_json_object('{"code":"0001","dept":"市场部"}','$.dept') as dept

输出结果
在这里插入图片描述

2、explode

解析列表形式的json
eg: [{“code”:“0001”,“dept”:“市场部”},{“code”:“0002”,“dept”:“运营部”}]
2.1、先去掉中括号
regexp_extract(字符串, ‘^\[(.+)\]$’)
2.2、将{}外的逗号分隔符置换成json数据中不存在的字符
replace(字符串,‘},’,‘}|’)
2.3、根据新置换的分隔符切分数据
split(字符串,“\|”)

select 
 get_json_object(a,'$.code') as code
,get_json_object(a,'$.dept')  as dept
from table_name
lateral view explode(split(replace(regexp_extract('[{"code":"0001","dept":"市场部"},{"code":"0002","dept":"运营部"}]' , '^\\[(.+)\\]$'),'},','}|'),"\\|")) t as a

输出结果:
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值