hive 行转列 列转行

列转行

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 行转列 列转行)