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

如何将Python列表添加为PySpark DataFrame的新列

解决方案

你可以通过PySpark内置的array和lit函数将Python列表转换为Spark的数组字面量,作为新列添加到DataFrame中,完整实现代码如下:

# 导入依赖函数
from pyspark.sql.functions import array, lit

# 定义你的Python列表
l = ["abc is good", "xyz is bad"]

# 初始化示例DataFrame
df = spark.createDataFrame([("one","two")],["A","B"])

# 新增存储列表的列C
df = df.withColumn("C", array(*[lit(item) for item in l]))

# 打印结果验证
df.show(truncate=False)

运行后输出结果符合预期:

+---+---+--------------------------+
|A  |B  |C                         |
+---+---+--------------------------+
|one|two|[abc is good, xyz is bad] |
+---+---+--------------------------+

实现说明

PySpark的lit函数用于将Python标量转换为Spark可识别的字面量,array函数可以将多个字面量组合为数组类型的列。由于不能直接将Python列表作为参数传入Spark列函数,因此我们先遍历列表将每个元素转为lit类型,再通过array拼接成数组列,最终每一行的C列都会保存完整的目标列表。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 20:06:06