hive使用技巧(五) 一行轉多行,多行轉一行

2021-07-25 02:58:50 字數 693 閱讀 8306

hive使用技巧(一)自動化動態分配表分割槽及修改hive表字段名稱

hive使用技巧(二)——共享中間結果集

hive使用技巧(三)——巧用group by實現去重統計

hive使用技巧(四)——巧用mapjoin解決資料傾斜問題

hive使用技巧(五)—— 一行轉多行,多行轉一行

在資料處理過程中,經常需要使用一行轉多行,多行轉一行的變換,oracle中有相應的函式,hive中也是可以實現的。

1、一行轉多行

說明:lateral view用於和split、explode等udtf一起使用的,能將一行資料拆分成多行資料,在此基礎上可以對拆分的資料進行聚合,lateral view首先為原始表的每行呼叫udtf,udtf會把一行拆分成一行或者多行,lateral view在把結果組合,產生乙個支援別名表的虛擬表。

2、多行轉一行 

說明 :collect_set: 返回去重的元素陣列。

hive多行轉多列

一 需求 需要將多行的資料,按照某個維度轉換為一行。轉換前 轉換後 db price area name 為 東北 的total price actual db qty area name 為 東北 的qty。二 解決方案 1 sql select brand,max case when area ...

sql裡的多行多列轉一行多列小技巧

恢復內容開始 今天下午接受了乙個緊急小任務,是將一組比賽記錄統計出來,將象棋遊戲玩家的兩條記錄在一行裡面顯示,進資料庫看之後是首先想到的是行轉列,但是一開始就覺得不對,後來寫到一半確實不對,後來上網查詢了半天多行多列轉一行多列,發現又要寫演算法又要寫函式,看了實在頭疼,不想這麼麻煩。於是自己突然間靈...

mysql 多列合併一列,一行轉多行

思路 將兩列日期先格式化成以yyyy mm dd格式,再將兩列合併成一列,並且以逗號分隔開,再根據逗號將一列中的一行分割成多行,再分組去重 create table t product id varchar 225 not null start time datetime notnull defau...