Hive之行轉列/列轉行

一、行轉列express

場景:在hive表中,一個用戶會有多我的羣標籤,List格式(逗號分隔如要轉成List),有時咱們須要統計一我的羣標籤下有少用戶,這是就須要使用行轉列了segmentfault

例如,user_crowd_info有以下數據ide

visit_id    crowds
abc         [100,101,102]
def         [100,101]
abe         [101,105]

能夠使用的函數函數

select explode(crowds) as crowd from user_crowd_info;

結果:
100
101
102
100
101
101
105

這樣執行的結果只有crowd, 可是咱們須要完整的信息,使用select visit_id, explode(crowds) as crowd from user_crowd_info;是不對的,會報錯UDTF's are not supported outside the SELECT clause, nor nested in expressions學習

因此咱們須要這樣作:區塊鏈

select visit_id,crowd 
from user_crowd_info t lateral view explode(t.crowds) adtable as crowd;

二、列轉行spa

使用concat_ws函數便可code

select visit_id,concat_ws(,crowd) from user_crowd_info group by visit_id;



歡迎訂閱「K叔區塊鏈」 - 專一於區塊鏈技術學習

博客地址: http://www.jouypub.com
簡書主頁: https://www.jianshu.com/u/756c9c8ae984
segmentfault主頁: https://segmentfault.com/blog/jouypub
騰訊雲主頁: https://cloud.tencent.com/developer/column/72548
相關文章
相關標籤/搜索