如果hive表中有扩展字段,那么扩展字段格式最常见的就是json格式,所以如何解析json字符串相对繁琐(虽然没啥技术)
用到的hive功能函数有:get_json_object、explode、split、regexp_replace、regexp_extract
-- json字段样式:[{'a':1, 'b':2}, {'a':3, 'b':4}], 字段名称为json_str
select
col_id,
get_json_object(json_item, '$.a') as new_a, -- 读取json_str中的key为“a”的数据
from table_name
lateral view explode(split(regexp_replace(regexp_extract(json_str, '^[(.+)]$', 1), -- 取出“[]”中间内容(regexp_extract)
'}, {', '}¥@¥{'), -- 将“}, {”替换为“'}¥@¥{”(regexp_replace)
'¥@¥')) any_name as json_item -- 按照“¥@¥”分割(split) , 且将分割得到的list拆分成多行(explode)
where conditon='' -- 自定义条件(针对table_name的条件)



