本文共 870 字,大约阅读时间需要 2 分钟。
在技术对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 filtersubtype1 2
json_tuple
函数的作用:用来解析json字符串中的多个字段select b.a ,b.bfrom test_table alateral view json_tuple(meta,'a', 'b', ) b as a, b;
运行结果:
filtertype filtersubtype1 23 4
对于上面的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
转载地址:http://ndwmi.baihongyu.com/