三秒+一個小Demo,輕鬆掌握Hive中的 列轉行、行轉列!!!
阿新 • • 發佈:2018-12-01
閒話少敘,直接開幹!
先看Demo:
一、行轉列
首先,我們需要收集資料,建立一個檔案,內容如下:
一、啟動Hive,建立表並匯入資料:
1.1 建立表
create table test(name string,xingzuo string,xuexing string)
row format delimited fields delimated by "\t";
1.2 匯入資料
load data local inpath "找到你所建立的檔案" into table test;
1.3 行轉列查詢
select t1.base,concat_ws('|', collect_set(t1.name)) name from (select name,concat(xingzuo,",",xuexing) base from test) t1 group by t1.base;
1.4 查詢結果
二、列轉行
重複上面步驟即可:
2.1 準備資料
2.2 建表
create table test02(movie string,category array<string>)
row format delimited fields terminated by "\t"
collection items terminated by ",";
2.3 匯入資料
load data local inpath "/usr/local/hive-1.2.1/testdata/test02.tsv" into table test02;
2.4 列轉行查詢
select movie, category_name
from
test02 lateral view explode(category) table_tmp as category_name;
2.5 結果展示
相信很多朋友心裡肯定會說,這麼簡單,沒錯,就是這麼簡單,快去試試吧!