Hive列合併與元素蒐集
舉例,某個表形式如下
+--+--------+------+-----+----+
|id|name |course|score|year|
+--+--------+------+-----+----+
|1 |zhangsan|數學 |80 |2015|
|2 |lisi |語文 |90 |2016|
|3 |lisi |數學 |70 |2016|
|4 |wangwu |化學 |80 |2017|
|5 |zhangsan|語文 |85 |2015|
|6 |zhangsan|化學 |90 |2015|
+--+--------+------+-----+----+
concat相當於兩列資料合併
select concat(id,":",name),course,score,year from course_score;
+----------+------+-----+----+
|c0 |course|score|year|
+----------+------+-----+----+
|1:zhangsan|數學 |80 |2015|
|2:lisi |語文 |90 |2016|
|3:lisi |數學 |70 |2016|
|4:wangwu |化學 |80 |2017|
|5:zhangsan|語文 |85 |2015|
|6:zhangsan|化學 |90 |2015|
+----------+------+-----+----+
concat_ws
也是合併多列的,不過分隔符只需要寫一次.
只能連線字串,所以要轉型一下,利用cast函式
select concat_ws(":",cast(id as string),course,cast(score as string)) ,year from course_score;
+-------+----+
|c0 |year|
+-------+----+
|1:數學:80|2015|
|2:語文:90|2016|
|3:數學:70|2016|
|4:化學:80|2017|
|5:語文:85|2015|
|6:化學:90|2015|
+-------+----+
collect_set
收集某一列的,和上面兩個功能完全不同. 另外,也可以去重
select collect_set(name) from course_score;
+----------------------------+
|c0 |
+----------------------------+
|["zhangsan","lisi","wangwu"]|
+----------------------------+
相關文章
- Hive小檔案合併Hive
- 命令列中的拆分與合併命令列
- NumPy 陣列迭代與合併詳解陣列
- 合併陣列陣列
- FLEX合併陣列Flex陣列
- Hive表小檔案合併方法總結Hive
- js如何合併兩個陣列並且刪除重複的元素JS陣列
- GridView列相同合併View
- JS--陣列物件合併JS陣列物件
- 合併兩個有序陣列陣列
- pandas 兩列資料合併
- JavaScript concat()合併陣列JavaScript陣列
- mysql-列合併成行方式MySql
- 藍橋杯-合併數列
- [hive] hive cli 命令列Hive命令列
- Git 分支與合併Git
- js如何合併兩個陣列JS陣列
- 88、合併兩個有序陣列陣列
- 演算法合併排序陣列演算法排序陣列
- js合併兩個陣列物件JS陣列物件
- git分支合併與rebaseGit
- java 拆分與合併字串Java字串
- 生成表格與合併表格
- php合併陣列的幾種方式PHP陣列
- 合併JavaScript陣列的N種方法JavaScript陣列
- 88. 合併兩個有序陣列陣列
- el-table 自動合併所有列
- 【MySQL】MySQL如何合併多行資料,行轉列,group_concat 多行合併MySql
- Python語言合併列表元素常用的方法!Python
- 23. 合併K個元素的有序連結串列
- Goldengate的拆分與合併Go
- 128 PHP合併陣列+與array_merge的區別分析PHP陣列
- Git -- 分支與合併 (命令列+視覺化工具p4merge)Git命令列視覺化
- Hbase-原理-region合併和hfile的合併(大合併、小合併)
- js陣列物件相同項合併處理JS陣列物件
- el-table 合併相同資料的列
- [CareerCup] 11.1 Merge Arrays 合併陣列陣列
- MySQL 合併查詢join 查詢出的不同列合併到一個表中MySql