如何用Spark DataFrame提取首列唯一值并拼接其余列值?
Spark DataFrame 提取唯一值并拼接对应列数值
可以通过分组+聚合拼接的方式实现需求,核心是用Spark的聚合函数将分组后的列值收集并拼接成字符串。以下是具体实现代码:
Python 版本
假设你的DataFrame第一列名为id,第二列名为value(可替换为实际列名):
from pyspark.sql import functions as F # 按第一列分组,收集第二列所有值并以指定分隔符拼接 result_df = df.groupBy("id").agg( F.concat_ws(", ", F.collect_list("value")).alias("combined_values") )
Scala 版本
import org.apache.spark.sql.functions.{concat_ws, collect_list} val result_df = df.groupBy("id") .agg(concat_ws(", ", collect_list("value")).alias("combined_values"))
额外说明
- 如果需要对第二列的拼接值去重,将
collect_list替换为collect_set即可 - 分隔符可根据需求修改(比如把
", "换成"; "或其他符号) - 替换代码中的
id和value为你DataFrame的实际列名
内容的提问来源于stack exchange,提问作者Harshith K R
相关产品推荐
相关产品推荐

