美文网首页
hive中的collect_list和collect_set

hive中的collect_list和collect_set

作者: OakesYa | 来源:发表于2020-04-24 17:47 被阅读0次

需求背景

一个学生对应一个班级号和名称,此时需要统计每个班级的学生

创建数据

use db_name;
create table student_test(
    classno int COMMENT '班级名称',
    name STRING COMMENT '学生名称'
) 
comment '学生表'

insert into student_test values(1,'小明');
insert into student_test values(1,'小王');
insert into student_test values(1,'小明');
insert into student_test values(2,'小王');

造完的数据如图所示:


image.png

使用

select classno,collect_list(name) from tmp_youdb.student_test group by classno
image.png
select classno,collect_set(name) from tmp_youdb.student_test group by classno
image.png

总结

从上面可以看出collect_list和collect_set其实就是行转列,需要注意的就是行转列的时候是无序的,如需按照某个字段排序整合,可以使用sort_array

相关文章

网友评论

      本文标题:hive中的collect_list和collect_set

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