hive中取多个key时,为什么用了json_tuple,效率反而比get_json_object慢了一些?
文将介绍解析json字符串的两个函数:get_json_object和json_tuple。
表结构如下:
其中meta 字段数据, 数据表是 test_table
{
{"a":1,"b":2},{"a":3,"b":4}}
get_json_object方法可以处理的 path更为丰富,能够支持正则、支持嵌套、取多层等。
而json_tuple简单粗暴,只能解析第一层key具体介绍如下:
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