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

如何在DataFrame中替换值并保留原始列数据?

保留原始列同时新增替换后列的Spark解决方案

你已经找对了替换值的核心方法,只是之前误把新列名写成了原列名导致覆盖了数据对吧?其实只要换个思路——用withColumn创建全新的列,而不是修改原列,就能完美解决你的需求!

针对你的场景,我们可以分别基于col2、col3生成替换后的col4、col5,完全保留原始列的内容:

首先导入必要的Spark函数:

from pyspark.sql.functions import col, when

然后执行以下代码:

# 基于col2生成替换后的col4,保留原col2不变
updated_df = dataframe.withColumn("col4", when(col("col2") == "c", "cat").otherwise(col("col2")))
# 基于col3生成替换后的col5,保留原col3不变
updated_df = updated_df.withColumn("col5", when(col("col3") == "h", "hat").otherwise(col("col3")))

运行这段代码后,你的DataFrame就会拥有原始的col1、col2、col3,同时新增了替换后的col4和col5,完全匹配你想要的最终结构。

如果之后还有其他列需要做类似的替换,都可以复用这个逻辑:始终用withColumn创建新列,避免直接修改原列,就能确保原始数据不会被覆盖。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 04:02:15