美文网首页
hive 行转列 列转行

hive 行转列 列转行

作者: real勾玉 | 来源:发表于2017-09-24 23:02 被阅读476次

    列转行

    id data
    1 a1_a2_a3
    2 b

    数据分析时需要行中的数据拆成多列,则需要用到:
    1,lateral view
    2,explode
    原始表table1数据如下:

    id data
    1 a1_a2_a3
    2 b
    id rd
    1 a1
    1 a2
    1 a3
    2 b

    以上数据需要处理成

    id rd
    1 a1
    1 a2
    1 a3
    2 b

    就需要列转行

    select id, rd from table1 lateral view explode(split(data,'_')) datas as rd
    

    行转列

    id rd
    1 a1
    1 a2
    1 a3
    2 b

    如果需要把

    id rd
    1 a1
    1 a2
    1 a3
    2 b
    id data
    1 a1_a2_a3
    2 b

    变成

    id data
    1 a1_a2_a3
    2 b
    select id, concat_ws(',',collect_set(rd)) as data 
    from table1  
    group by id;
    

    相关文章

      网友评论

          本文标题:hive 行转列 列转行

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