美文网首页
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