Hive处理Json相关数据

本文介绍了Hive中处理JSON数据的函数,如get_json_object和json_tuple,用于从复杂JSON结构中提取字段和元组。同时展示了如何处理JSON数组,并提供了一种使用正则表达式和explode函数拆分JSON数组的方法。此外,还提及了UDTF在处理JSON数据时的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

get_json_object 函数

此函数为常用函数,可以取出json数据中的相应的字段的数值

-- get_json_object(json,'$.name') as name
select get_json_object('{"name":"zj","age":25}','$.name') as name ,get_json_object('{"name":"zj","age":25}','$.age') as age;

select get_json_object('{"name":"zj","age":25,"add":{"provinces":"河南","city":"周口"}}','$.add.city');

json_tuple 函数

select json_tuple('{"name":"zj","age":25}','name','age') ;

select b.c0 as name,b.c1 as age from (select json_tuple('{"name":"zj","age":25}','name','age'))b ;

Json 数组

-- 相当于UDTF “一进多出”
SELECT explode(split(regexp_replace(regexp_replace('[{"website":"baidu.com","name":"百度"},{"website":"google.com","name":"谷歌"}]', '\\[|\\]',''),'\\}\\,\\{','\\}\\;\\{'),'\\;'));
-- 说明:  
--     第一次替换:将'['或者']'替换为''
-- 	   第二次替换:将'},{' 替换为'};{'
--     切割:按照';'进行切割

此方式也可以采用编写UDTF来实现,具体步骤可以查看Hive UDF GDF UDTF编写与实现

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值