table1
column1 | column2 |
---|---|
a | 1 |
a | 2 |
a | 3 |
b | 1 |
b | 2 |
b | 3 |
table2
column1 | set |
---|---|
a | 1,2,3 |
b | 1,2,3 |
1、思考,如何能将table1改变成table2呢?
答案:用concat_ws()用来拼接,用collect_set()用来收集
select column1,concat_ws(',',collect_set(column2)) as set from table1 group by column1
2、思考,如何能将table2改变成table1呢?
答案:使用lateral view explode 来打散set列中的内容
select column1,column2 from table2 as t2 lateral view explode(split(set,',')) t1 as column2
OK,以上就是hive关于行转列,列转行的思想