首页 > 代码库 > hive列转行 (collect_set())
hive列转行 (collect_set())
一、问题
hive如何将
a b 1
a b 2
a b 3
c d 4
c d 5
c d 6
变为:
a b 1,2,3
c d 4,5,6
二、数据
test.txt
a b 1a b 2
a b 3
c d 4
c d 5
c d 6
三、答案
1.建表
drop table tmp_jiangzl_test;
create table tmp_jiangzl_test
(
col1 string,
col2 string,
col3 string
)
row format delimited fields terminated by ‘\t‘
stored as textfile;
load data local inpath ‘/home/jiangzl/shell/test.txt‘ into table tmp_jiangzl_test;
2.处理
select col1,col2,concat_ws(‘,‘,collect_set(col3))
from tmp_jiangzl_test
group by col1,col2;
四、关于我们
本文author:数据的开拓者成员之一 江中炼
QQ群:248087140
座右铭:
你在你擅长的领域牛逼,
并带着一群小白变牛逼,
别人会发自内心的去尊重你的。
--可点击加入我们
群博客地址:http://my.oschina.net/dataRunner/blog/295960