get_json_object与json_tuple 的解析
get_json_object与json_tuple 的解析
在技术对app进行埋点时,会讲多个字段存放在一个数组中,因此模型调用数据时,要对埋点数据进行解析,以作进一步的清洗。本文将介绍解析json字符串的两个函数:get_json_object和json_tuple。
get_json_object
官网:https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF#LanguageManualUDF-get_json_object
他会有一些注意:
json_tuple
官网:https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=69408918#Home(Copy)-json_tuple
举例实现以下:
其中meta 字段数据, 数据表是 test_table
{{"a":1,"b":2},{"a":3,"b":4},{"a":5,"b":6},{"a":7,"b":8}}
get_json_object
函数的作用:用来解析json字符串的一个字段:
select get_json_object(meta,’
.
a
′
)
a
s
f
i
l
t
e
r
t
y
p
e
,
g
e
t
j
s
o
n
o
b
j
e
c
t
(
m
e
t
a
,
′
.a') as filtertype ,get_json_object(meta,'
.a′)asfiltertype,getjsonobject(meta,′.b’)as filtersubtype
from test_table
运行结果 仅有一条数据,其实应该是4条:
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
5 6
7 8
最后:
这里都可以根据自行的需要做自定义函数
更为方便和简单在处理数据方面
更多推荐
所有评论(0)