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

PySpark是否有函数可合并相同ID行的对应列数据?

PySpark 分组聚合实现需求

你要的这个转换完全可以用PySpark的内置函数一步完成,不用flatMap(你用错函数了,flatMap是用来把单个元素拆成多个再展开的,和你要的分组聚合不是一回事)。

直接用groupBy配合collect_list函数就能实现:

代码示例

假设你的DataFrame叫df,执行以下代码:

from pyspark.sql.functions import collect_list

# 生成目标DataFrame
result_df = df.groupBy("A").agg(collect_list("B").alias("B_list"))

# 如果要转成RDD格式
result_rdd = result_df.rdd.map(lambda row: (row.A, row.B_list))

结果说明

  • 执行result_df.show()会得到如下DataFrame:
+---+---------+
|  A|  B_list |
+---+---------+
|  1|[a, b, c]|
|  2|   [f, g]|
|  3|     [j]|
+---+---------+
  • 执行result_rdd.collect()会得到你要的RDD格式:
[(1, ['a', 'b', 'c']), (2, ['f', 'g']), (3, ['j'])]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 02:54:20