在京東眾多業務中,**業務充滿了複雜性和挑戰性,因為業務的靈活性,很多資料都儲存成xml和json格式資料,這就要求下游資料分析師們需要對其做解析後方可使用 。
在眾多操作中 ,有一種是需要對資料做行列轉換操作。
資料結構:
create external table jd_row_to_column(
jd_id string ,
jd_session string
);
資料描述:
insert into jd_row_to_column values('0001','01,02,03,04');
1.行轉列(對一列資料拆分成多行)
使用函式 lateral view explode(split(column_name, ',')) col_nm
我們對上面表結構的jd_session列按照逗號進行資料拆分
拆分sql:
2.列轉行(根據主鍵,資料合併)
使用函式:concat_ws(',',collect_set(column)) 其中 函式collect_set 會對原始資料做去重操作,collect_list 則不會
我們將對上面的結果進行資料合併操作,看看結果是不是滿足要求
Hive中行列轉換
1 演示多列轉為單行 資料檔案及內容 student.txt xiaoming english 92.0 xiaoming chinese 98.0 xiaoming math 89.5 huahua chinese 80.0 huahua math 89.5 建立表studnet create t...
hive 行列轉換案例
0 stu表資料 stu id name hello,you zm2008 hello,me zm2015 1 實現單詞計數 列轉行 split切分 explode 炸開 1.0 資料拆分成陣列 select split id,from stu 得到陣列 hello,you hello,me 1.1...
hive行列轉換總結
具體思路需要根據資料來定,常見的解決方法如下 1 使用case when 查詢出多列即可,即可增加列。或者2.轉成陣列或者集合後 乙個乙個的取值 不就變成一列了 乙個字段 多個取值 變成多列 多列變一列 select concat str1,str2,str3 from 表 concat可以帶多個引...