hive的Json解析大集合(好文收藏)

本文介绍了在大数据环境中,如何使用Hive内置函数get_json_object和json_tuple来解析JSON格式的数据。get_json_object用于获取JSON字符串中特定key的值,而json_tuple则能一次性解析多个字段。当遇到JSON数组时,可以结合explode和regexp_replace函数进行处理。文章提供了具体的示例,帮助读者理解如何解析包含数组的JSON数据。
摘要由CSDN通过智能技术生成

需求背景:
日常生产环境中,对于埋点上报数据中有json格式的数据,需要解析json格式的字符串里面的字段和数值.对于这种需求,hive系统内置解析json格式的函数.

1.get_json_object(jsonstr,’$.key’)

说明:str表示待解析的map,key抽取指定字段的值;这个函数每次只能返回一个key对应的值;若想要解析多个key的值只能多写几次这个函数才行

测试:
select get_json_object('{"id":"c1","address":"shenzheng"}','$.id') id;
结果:
id:c1

2.json_tuple(jsonstr,key1,key2,key3,…)

说明:解析json格式的字符串,之前的get_json_object,不能一次性解析,那么就衍生出了
json_tuple这个函数,可以一次性解析多个字段

测试1:
select 
json_tuple('{"id":"001","name":"zhangsan","address":"shenzheng"}','id','name','address') as (id,name,address)
结果:
id name address
001 zhangsan shenzheng

测试2:
select
b.id,
b.name
from a lateral view 
json_tuple('{"id":"001","name":"zhangsan","address":"shenzheng"}','id','name') b as id,name;
结果:
id name
001 zhangsan

总结:以上两个函数是解析json格式的字符串,但是无法解析json数组.

hive内置解析json数组的函数

1.explode(map/array) :炸裂函数专门处理map和array格式的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值