Hive 中 json 字符串解析之 get_json_object 与 json_tuple

前言

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

你可能感兴趣的:(大数据,实战技能,json,hive)