Pyspark使用一个when语句更新两列?

时间:2016-10-18 18:49:21

标签: python pyspark

所以我在PySpark中使用df.Withcolumn()来创建一个列,并使用F.when()来指定何时应该更新列的标准。

df = df.withColumn('ab', F.when(df['text']=="0", 1).otherwise(0))

基本上我要将列更新为' 1'如果符合标准。现在,如果相同的条件匹配(例如df),我想更新同一df['text']=="0"中的另一列。 PySpark中是否有任何方法可以使用一个when语句来更新两列?

1 个答案:

答案 0 :(得分:0)

这是不可能的。您只能创建struct:

>>> from pyspark.sql.functions import *
>>> df.withColumn('ab', F.when(df['text']=="0" , struct(1, "foo")).otherwise(struct(0, "bar")))