collect_list保持顺序
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了collect_list保持顺序相关的知识,希望对你有一定的参考价值。
参考技术A 当需要collect_list(item_id) groupby user_id需要保持item_list的顺序时,用辅助列拼接item_id,sort_array做排序lpad左补齐相同位数,保证字符串排序不会错
参考博客
如何在 MySQL 中对 concat_ws(',',collect_list(a)) 进行排序?
【中文标题】如何在 MySQL 中对 concat_ws(\',\',collect_list(a)) 进行排序?【英文标题】:How to sort concat_ws(',',collect_list(a)) in MySQL?如何在 MySQL 中对 concat_ws(',',collect_list(a)) 进行排序? 【发布时间】:2021-09-28 10:11:37 【问题描述】:我有一个包含 2 列时间和文本的表格,我想在其中按时间顺序连接文本。
我presto sql,我可以做ARRAY_AGG(text ORDER BY time)
,我在MySQL中怎么做?
我发现CONCAT_WS(',', COLLECT_LIST(text))
可以做部分工作,但不知道如何快速按时间订购。
谢谢。
【问题讨论】:
这里的错误,我希望查询在 SparkSQL 中执行 【参考方案1】:你会使用:
GROUP_CONCAT(test ORDER BY time)
注意:这会产生一个逗号分隔的字符串,而不是一个数组。
【讨论】:
我可以再问一个问题,我试过了,但我收到了这个错误'org.apache.spark.sql.catalyst.parser.ParseException: mismatched input 'ORDER' Expecting ')' , ','(第 3 行,位置 41)'。我正在使用 SparkSQL,我的代码是 SELECT GROUP_CONCAT(text ORDER BY time ASC) as lst from ... @duoduolikes 。 . .您的问题是:“我怎样才能在 MySQL 中做到这一点?”。这回答了你的问题。以上是关于collect_list保持顺序的主要内容,如果未能解决你的问题,请参考以下文章
PySpark 使用 collect_list 收集不同长度的数组
Groupby 和 collect_list 基于 PySpark 中的另一列维护顺序