美文网首页
hive应用:将一行变成多行

hive应用:将一行变成多行

作者: 春风花草 | 来源:发表于2022-04-30 13:22 被阅读0次

背景

经常需要处理如下的数据


原始数据

第一列是项目名称,第二列是项目经理id,一个项目有多个项目经理,现在需要将数据变成一行只有一个项目经理,转换后的数据如下:


转换后的数据

解决方案

这里需要用到split函数和explode函数。
split函数可以将字符串按分隔符变成数组
explode是hive的一个UDTF函数,具体什么是UDTF函数呢?
table-generating functions transform a single input row to multiple output rows
其实就是一行变多行的函数
explode具体用法可以参考官网

第一步

split函数将字符串转换成数组

select project_name,split(project_manager_id,',') from default.t_project_info;
>
电商&营销   ["23","25","14","13"]
杭州服务中心  ["52","54"]
码龙系统组   ["16","12","19"]

第二步

explode函数将数组变成多行

SELECT project_name, manager_id
FROM t_project_info
LATERAL VIEW explode(split(project_manager_id,",")) tmp AS manager_id
>
电商&营销   23
电商&营销   25
电商&营销   14
电商&营销   13
杭州服务中心  52
杭州服务中心  54

大功告成!

相关文章

网友评论

      本文标题:hive应用:将一行变成多行

      本文链接:https://www.haomeiwen.com/subject/crhyyrtx.html