str_to_map使用

表字段中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
作者:尤灯塔
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.
原文地址:https://www.cnblogs.com/30go/p/15169429.html