表字段中jsonStr是一个json格式的字符串,类似于map结构。{"name”:"king", "age":18, "score":99}
使用str_to_map可以转化为map结构。
str_to_map(regexp_replace(regexp_replace(regexp_replace(jsonStr,‘\"‘,‘‘),‘\\{‘,‘‘),‘\\}‘,‘‘), ‘,‘, ‘:‘) as json_map,
如果jsonStr是控制,则需要使用if添加判断
if(jsonStr is null or jsonStr = ‘‘,map(),str_to_map(regexp_replace(regexp_replace(regexp_replace(jsonStr,‘\"‘,‘‘),‘\\{‘,‘‘),‘\\}‘,‘‘), ‘,‘, ‘:‘)) as json_map,
针对map结构的解析成多行形式
select pk_day,x_k,x_v from tmp_b lateral view outer explode(json_map) x as x_k,x_v