Hive SQL 实现行列互转

Hive SQL 实现行列互转
最新回答
游戏人间

2021-03-08 09:01:42

行转列(一行转多行)需求1:转换格式如下:

使用Hive SQL中的explode函数处理数组结构的字段,将其转换为多行。同时,Lateral View函数与explode结合使用,解决在select查询时只能包含单个UDTF的问题,允许选择explode得到的字段以及额外的字段。

特定场景下,如用户表记录某款产品每天各个功能的使用次数,以键值对形式存储。此时,若需提取用户在每个功能的使用次数及占比特征,需执行行转列操作。

输出结果为:

列转行(多行转一行)需求2:转换格式如下:

在需要合并多行的场景中,例如用户评论流水表,目的为对同一用户的所有评论合并,用于文本分类。通过Hive SQL的group by与group_concat(<>,’,’)方法,将多行数据转化为一行显示,实现数据整合。