2016-10-18 33 views
0

因此,我在PySpark中使用df.Withcolumn()來創建列,並使用F.when()來指定何時更新列的條件。Pyspark使用一個when語句更新兩列?

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

基本上我更新列爲'1',如果它符合條件。現在,如果相同的條件匹配(例如,df['text']=="0"),我想更新同一df中的另一列。 PySpark有沒有什麼方法可以使用一個when語句更新兩列?

回答

0

這是不可能的。您只能創建結構:

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