202107191056 - hive中的json处理函数

get_json_object

get_json_object(json_string, field_path)

-- 对json字符串get_json_object(json_string, field_path) 获取lng/lat , 序号 为单独字段 新表生成
with tmp as (
  select code, region_name, loc from dim_cell_info_hz t 
  lateral view explode(myJsonArrayParser(lattice) ) t1 as loc 
  where t.clndr_dt_id = '202106' ) ,
tmp1 as ( select 
  code, region_name, split(loc, '\\;')[0] loc, split(loc, '\\;')[1] as ord
from tmp )
select code, region_name, get_json_object(loc, '$.lng') lng, get_json_object(loc, '$.lat') lat, ord from tmp1 limit 10 ;

json_tuple

select json_tuple('{"name":"jack","server":"www.qq.com"}','server','name');

with tmp as (
  select code, region_name, loc from dim_cell_info_hz t 
  lateral view explode(myJsonArrayParser(lattice) ) t1 as loc 
  where t.clndr_dt_id = '202106' ) ,
tmp1 as ( select 
  code, region_name, split(loc, '\\;')[0] loc1, split(loc, '\\;')[1] as ord1
from tmp ),
tmp2 as (
	select json_tuple(loc1, 'lng', 'lat') from tmp1 )
select * from tmp2 limit 10 ;
posted @ 2025-03-19 21:19  钱塘江畔  阅读(39)  评论(0)    收藏  举报