【发布时间】:2019-11-20 07:33:29
【问题描述】:
我正在尝试检查多个列值是否为0。我们有从 1 到 11 列的 spark 数据框,需要检查它们的值。目前我的代码如下所示:-
df3 =df3.withColumn('Status', when((col("1") ==0)|(col("2") ==0)|(col("3") ==0)| (col("4") ==0) |(col("5") ==0)|(col("6") ==0)|(col("7") ==0)| (col("8") ==0)|(col("9") ==0)|(col("10") ==0)| (col("11") ==0) ,'Incomplete').otherwise('Complete'))
我怎样才能通过只使用 for 循环而不是这么多 or 条件来实现这一点
【问题讨论】:
-
你的列真的只用数字命名吗?这是一个可怕的名字。通过正确的命名(至少
c1、c2等...),您可以简单地使用F.expr来获得结果。
标签: pyspark