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

如何在Pyspark中将两列数据纵向堆叠合并为单列

实现方法

方法1:使用stack函数(推荐,多列堆叠时更简洁)

这是PySpark内置的行列转换函数,专门用于多列纵向堆叠的场景,参数中第一个数字代表要堆叠的列数量,后面依次传入要堆叠的列名即可:

from pyspark.sql.functions import expr

# 2代表堆叠2列,后面依次传入要合并的两列,别名all_names是最终的单列名
stacked_df = df2.select(expr("stack(2, Name, Lots_of_names) as all_names"))
# 验证输出行数
print(stacked_df.count()) # 输出10
stacked_df.show()

方法2:使用union拼接(逻辑直观,适合列数少的场景)

分别提取两列转为相同列名后,再纵向拼接:

from pyspark.sql.functions import col

# 分别取两列,统一列名后拼接
name_col = df2.select(col("Name").alias("all_names"))
lots_col = df2.select(col("Lots_of_names").alias("all_names"))
stacked_df = name_col.union(lots_col)
# 验证输出
print(stacked_df.count()) # 输出10

内容的提问来源于stack exchange,提问作者Droid-Bird

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 18:27:04