如何在PySpark中按条件更新DataFrame的Flag列
PySpark DataFrame 更新Flag列解决方案
需求说明
将DataFrame中status字段为present或ok的所有行,其Flag字段值更新为1,其余行保持原Flag值不变。
代码实现
使用PySpark的when+otherwise条件表达式结合isin方法实现:
from pyspark.sql.functions import when, col # 更新Flag列 updated_df = df.withColumn( "Flag", when(col("status").isin("present", "ok"), 1).otherwise(col("Flag")) ) # 查看结果 updated_df.show()
验证结果
执行代码后得到的目标DataFrame如下:
| status | Flag |
|---|---|
| present | 1 |
| present | 1 |
| na | 1 |
| Void | 0 |
| present | 1 |
| notpresent | 0 |
| present | 1 |
| present | 1 |
| ok | 1 |
内容的提问来源于stack exchange,提问作者Scope
相关产品推荐
相关产品推荐

