hive 中 json 字符串解析之 get_json_object 与 json_tuple
程序员文章站
2022-07-13 12:28:24
...
在技术对app进行埋点时,会讲多个字段存放在一个数组中,因此模型调用数据时,要对埋点数据进行解析,以作进一步的清洗。本文将介绍解析json字符串的两个函数:get_json_object和json_tuple。
表结构如下:
其中meta 字段数据, 数据表是 test_table
{{"a":1,"b":2},{"a":3,"b":4}}
get_json_object
函数的作用:用来解析json字符串的一个字段:
select get_json_object(meta,'$.a') as filtertype
,get_json_object(meta,'$.b')as filtersubtype
from test_table
运行结果 仅有一条数据,其实应该是2条:
filtertype filtersubtype
1 2
json_tuple
函数的作用:用来解析json字符串中的多个字段
select b.a
,b.b
from test_table a
lateral view json_tuple(meta,'a', 'b', ) b as
a, b;
运行结果:
filtertype filtersubtype
1 2
3 4
使用正则表达式对json 数据进行处理
对于上面的test_table 使用:
select get_json_object(B.stock_code,'$.a') as a,
get_json_object(B.stock_code,'$.b') as b,
from (
select split(regexp_replace(regexp_extract(meta
,'^\[(.+)\]$',1),'\\}\\,\\{', \'\}\\|\\|\\{''),'\\|\|') as stock_codes
from test_table
) A lateral view explode(A.stock_codes) B as stock_code
推荐阅读
-
hive中get_json_object()和json_tuple()
-
HIVE中get_json_object与json_tuple使用
-
hive 中 json 字符串解析之 get_json_object 与 json_tuple
-
hive解析json的两种方法:get_json_object()和json_tuple()
-
json_tuple,get_json_object 实现hive的json字符串解析
-
hive get_json_object json_tuple json解析详解
-
hive中json字符串(get_json_object与json_tuple)及url解析(parse_url)
-
HIVE中get_json_object与json_tuple使用处理json格式数据
-
HIVE中get_json_object与json_tuple使用及区别
-
hive解析json数据方法get_json_object、json_tuple、正则化方法