赞
踩
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;
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。