Hive中collect相关的函数有collect_list和collect_set。
它们都是将分组中的某列转为一个数组返回,collect_list函数不去重而collect_set函数会去重。
例如:有如下一个数据表

进行行转列
很明显我们能看看到,张三做了两次B类项目
1、使用 collect_list函数
select user , collect_list( project ) from tb group by user ;
得到的结果将是

张三的两次B类项目,不会进行去重
2、若使用collect_set 函数,就会去重
select user, collect_set( project ) from tb group by user;
结果是

3、其他用法
使用下标获取一列内容
select user, collect_list(video_name)[0] from tb group by username;

本文介绍了Hive中的聚合函数collect_list和collect_set的使用,它们用于将分组数据转换为数组。collect_list不去除重复项,而collect_set会去除重复。通过示例展示了在不同场景下两者的应用,如行转列和获取特定列内容。

1万+

被折叠的 条评论
为什么被折叠?



