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

PySpark使用when/otherwise添加新列时触发'condition should be a Column'错误

解决PySpark中TypeError: condition should be a Column错误

错误核心原因是你误用了isNotNull属性,而非调用isNotNull()方法——F.col("column_a").isNotNull是指向方法本身的对象,并非返回的Column类型布尔条件,而F.when要求第一个参数必须是Column类型的条件值。

简化示例修正:

import pyspark.sql.functions as F

df.withColumn("new_column", F.when(F.col("column_a").isNotNull(), F.lit("A"))
    .otherwise(F.lit("B")))

你的实际需求修正代码:

import pyspark.sql.functions as F

df.withColumn("new_column", 
              F.when(F.col("column_a").isNotNull(),
                     F.regexp_extract(F.col("column_a"), 'myregex', 1))
              .otherwise(F.regexp_extract(F.col("column_b"), 'myotherregex', 1)))

额外建议:在regexp_extract中用F.col()显式引用列,虽然字符串列名在部分场景下可行,但显式使用Column对象能避免潜在的歧义问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 09:15:34