pyspark 如何在withColumn中引用新创建的列并检查null

a8jjtwal  于 2023-10-15  发布在  Spark
关注(0)|答案(1)|浏览(131)

我想这样做,但我得到错误AttributeError: 'str' object has no attribute 'isNull'

table_df_flat \
            .withColumn("test",f.lit(None)) \
            .withColumn("yes",f.when("test".isNull(),"yes")) \

它可以工作,如果我尝试这个,但我得到这个错误AttributeError: 'DataFrame' object has no attribute 'test'

table_df_flat \
            .withColumn("test",f.lit(None)) \
            .withColumn("yes",f.when(table_df_flat.test.isNull(),"yes")) \

如何修复在同一个查询中使用它?

brjng4g3

brjng4g31#

您可以使用col,然后检查是否为null

import pyspark.sql.functions as F

table_df_flat = spark.createDataFrame([("test",)], ["favorites"])

table_df_flat.withColumn("test", F.lit(None)).withColumn(
    "yes", F.when(F.col("test").isNull(), "yes")
).show()

相关问题