You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PySpark GroupBy聚合:如何将多列合并为指定格式字符串

解决方案

你需要调整聚合逻辑,先将每行的food和price用空格拼接成单个字符串,再收集这些字符串并最终用逗号分隔拼接成目标格式。

实现代码

from pyspark.sql.functions import concat_ws, collect_list

# 先拼接每行的food和price,再聚合后拼接成目标字符串
df.groupBy('name').agg(
    concat_ws(', ', collect_list(concat_ws(' ', 'food', 'price'))).alias('sample')
).show(10, False)

输出结果

+----+------------------------------------------+
|name|sample                                    |
+----+------------------------------------------+
|john|tomato 1.99, carrot 0.45, banana 1.29     |
|bill|apple 0.99, taco 2.59                     |
+----+------------------------------------------+

逻辑说明

  • concat_ws(' ', 'food', 'price'):将每行的食物名称和价格用空格拼接,生成类似tomato 1.99的单个字符串
  • collect_list(...):按name分组后,收集每个分组内的所有拼接字符串,形成列表
  • 外层的concat_ws(', ', ...):将列表中的所有字符串用, 分隔,拼接成最终的目标格式字符串

内容的提问来源于stack exchange,提问作者Sharma

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 02:23:11