1. 程式人生 > >三秒+一個小Demo,輕鬆掌握Hive中的 列轉行、行轉列!!!

三秒+一個小Demo,輕鬆掌握Hive中的 列轉行、行轉列!!!

閒話少敘,直接開幹!
先看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 結果展示
在這裡插入圖片描述
相信很多朋友心裡肯定會說,這麼簡單,沒錯,就是這麼簡單,快去試試吧!