hive函数–多行数据转化成map类型

  • Post author:
  • Post category:其他

 

最近工作中向别的部门提供接口数据时有这样的需求

将下面的表格形式的数据的后两列输出为map形式

即这个形式:

然后用这个函数处理:

str_to_map(concat_ws(',',collect_set(concat_ws(':',a.寄件省份,cast(a.件量 as string)))))  as 寄件省份件量分布

注意:collect_ws这个函数会对元素数组去重,如果不去重用collect_list这个函数

          str_to_map函数也会去重,如果传入的键值对有重复,只保留一个。如果还是要传入重复的键值对,可以用下面的函数:

regexp_replace(concat('{"',cast( concat_ws(',',collect_list(concat_ws(':',寄件省份,cast(件量 as string)))) as string),'"}'),',','","')  as complaintDetail


版权声明:本文为huobumingbai1234原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。