美文网首页初见
大数据hive10-hivesql进行数据列转行

大数据hive10-hivesql进行数据列转行

作者: 数据蝉 | 来源:发表于2020-06-01 19:49 被阅读0次
    一、需求背景
    image.png

    将电影分类中的数组数据展开。结果如下:


    image.png
    二、建表
    create dw.table movie_info(
        movie string, 
        category array<string>) 
    row format delimited fields terminated by "\t"
    collection items terminated by ",";
    
    三、插入数据
    insert into dw.movie_info select '《疑犯追踪》' as movie,array('悬疑','动作','科幻','剧情') as category
    insert into dw.movie_info select  '《Lie to me》' as movie,array('悬疑','警匪','动作','心理','剧情') as category
    insert into dw.movie_info select '《战狼2》' as movie,array('战争','动作','灾难') as category
    
    四、按需求查询数据
    select
        movie,
        category_name
    from 
        dw.movie_info lateral view explode(category) table_tmp as category_name;
    
    五、输出结果
    image.png
    六、总结

    1.函数说明
    EXPLODE(col):将hive一列中复杂的array或者map结构拆分成多行。

    LATERAL VIEW

    用法:LATERAL VIEW udtf(expression) tableAlias AS columnAlias

    解释:用于和split, explode等UDTF一起使用,它能够将一列数据拆成多行数据,在此基础上可以对拆分后的数据进行聚合。

    相关文章

      网友评论

        本文标题:大数据hive10-hivesql进行数据列转行

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