已经有人问过并回答了SQL(将多行转换为用逗号作为分隔符的行),在Hive中提到的任何方法是否都可以使用,例如:
+------+------+
| Col1 | Col2 |
+------+------+
| a | 1 |
| a | 5 |
| a | 6 |
| b | 2 |
| b | 6 |
+------+------+
对此:
+------+-------+
| Col1 | Col2 |
+------+-------+
| a | 1,5,6 |
| b | 2,6 |
+------+-------+
聚合器功能collect_set
可以实现您想要获得的功能。这是文档。因此,您可以编写如下查询:
SELECT Col1, collect_set(Col2)
FROM your_table
GROUP BY Col1;
但是,MySQLGROUP BY
和Hive之间有一个显着的区别,collect_set
即虽然GROUP_CONCAT
在结果数组中也保留了重复项,但collect_set
删除了数组中出现的重复项。在您显示的示例中,没有重复的组值,Col2
因此您可以继续使用它。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句