【发布时间】:2022-12-14 11:08:13
【问题描述】:
我需要在组内实现一个类似于 redshift listagg() 的函数(按 x_column 排序),但在 Spark SQL 中很重要,这里是 https://spark.apache.org/docs/2.4.0/api/sql/
有this 类似的问题,但答案不是没有 SQL。
我对 Redshift SQL 的查询是:
select KEY,
listagg(CODE, '-') within group (order by DATE) as CODE
from demo_table
group by KEY
此时 order by 语句并不重要,仅将所有列与 group by 聚合就足够了,我已经尝试使用 concat_ws 但它没有按预期工作
将它放在 pyspark 上对我不起作用
| KEY | CODE | DATE |
|---|---|---|
| 66 | PL | 11/1/2016 |
| 66 | PL | 12/1/2016 |
| 67 | JL | 12/1/2016 |
| 67 | JL | 10/1/2016 |
| 67 | PL | 9/1/2016 |
| 67 | PO | 8/1/2016 |
| 67 | JL | 12/1/2016 |
| 68 | PL | 11/1/2016 |
| 68 | JO | 11/1/2016 |
期望的输出
| KEY | CODE |
|---|---|
| 68 | JO - PL |
| 67 | JL - JL - PL - PO - JL |
| 68 | PL - JO |
【问题讨论】:
标签: sql apache-spark apache-spark-sql