繁体   English   中英

在 Hive 中使用分隔符连接多行

[英]Concat multiple rows with a delimiter in Hive

我需要使用 '~' 作为分隔符逐行连接字符串值。 我有以下数据:

在此处输入图片说明

我需要按“row_id”的升序连接每个“id”的“评论”列,并使用“~”作为分隔符。

预期输出如下:

在此处输入图片说明

GROUP_CONCAT不是一个选项,因为它在我的 Hive 版本中无法识别。 我可以使用collect_setcollect_list ,但我无法在两者之间插入分隔符。

有什么解决方法吗?

collect_list返回数组,而不是字符串。
可以使用concat_ws将数组转换为分隔字符串。


这将起作用,没有特定的评论顺序。

select      id
           ,concat_ws('~',collect_list(comment)) as comments

from        mytable 

group by    id
;

+----+-------------+
| id |  comments   |
+----+-------------+
|  1 | ABC~PRQ~XYZ |
|  2 | LMN~OPQ     |
+----+-------------+

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM