博客 hive中get_json_object函数

hive中get_json_object函数

   数栈君   发表于 2023-09-06 10:18  587  0

原数据,表名:explode_test,列名:sale_info。

http://dtstack-static.oss-cn-hangzhou.aliyuncs.com/2021bbs/files_user1/article/4e4b7b1f178c8e262314e93b7ce95c0a..png
  

[{"source":"7fresh","monthSales":4900,"userCount":1900,"score":"9.9"},

{"source":"jdmart","monthSales":7900,"userCount":2900,"score":"5.9"},

{"source":"yam","monthSales":54900,"userCount":12900,"score":"4.9"}]


[{"source":"7fresh","monthSales":4900,"userCount":1900,"score":"9.9"},

{"source":"jdmart","monthSales":7900,"userCount":2900,"score":"5.9"},

{"source":"yam","monthSales":54900,"userCount":12900,"score":"4.9"}]

1、get_json_object(<列名>,'$[]'),提取第几个数据



http://dtstack-static.oss-cn-hangzhou.aliyuncs.com/2021bbs/files_user1/article/8740126c9b0a406d20ed9acb234dd60d..png
  


2、提取字典中key的值


http://dtstack-static.oss-cn-hangzhou.aliyuncs.com/2021bbs/files_user1/article/01521a98adb104c588d379a5ddf1ffcb..png
  

select
get_json_object(get_json_object(sale_info, '$[0]'), '$.source') as source,
get_json_object(get_json_object(sale_info, '$[0]'), '$.monthSales') as monthSales,
get_json_object(get_json_object(sale_info, '$[0]'), '$.userCount') as userCount,
get_json_object(get_json_object(sale_info, '$[0]'), '$.score') as score
from explode_test;

3、提取所有key值

http://dtstack-static.oss-cn-hangzhou.aliyuncs.com/2021bbs/files_user1/article/1467fdd7af53f950adca882d20a0f762..png
  
先用正则变换成字典形式

http://dtstack-static.oss-cn-hangzhou.aliyuncs.com/2021bbs/files_user1/article/11d977fe1037f04586858ce8d11098f2..png
  

select
get_json_object(a.col, '$.source') as source,
get_json_object(a.col, '$.monthSales') as monthSales,
get_json_object(a.col, '$.userCount') as userCount,
get_json_object(a.col, '$.score') as score
from
(select
explode(split(regexp_replace(regexp_replace(sale_info, '\\[|\\]', ''), '\\}\\,\\{', '\\}\\;\\{'), '\\;')) as col
from explode_test)a;



免责申明:


本文系转载,版权归原作者所有,如若侵权请联系我们进行删除!

《数据治理行业实践白皮书》下载地址:https://fs80.cn/4w2atu

《数栈V6.0产品白皮书》下载地址:
https://fs80.cn/cw0iw1

想了解或咨询更多有关袋鼠云大数据产品、行业解决方案、客户案例的朋友,浏览袋鼠云官网:
https://www.dtstack.com/?src=bbs

同时,欢迎对大数据开源项目有兴趣的同学加入「袋鼠云开源框架钉钉技术群」,交流最新开源技术信息,群号码:30537511,项目地址:
https://github.com/DTStack


0条评论
社区公告
  • 大数据领域最专业的产品&技术交流社区,专注于探讨与分享大数据领域有趣又火热的信息,专业又专注的数据人园地

最新活动更多
微信扫码获取数字化转型资料
钉钉扫码加入技术交流群