更新Pyspark数据框中的多个列

时间:2019-07-03 09:23:01

标签: apache-spark dataframe pyspark

我有一个包含大约15列的数据框。 我需要根据3个条件用不同的值更新4列。我可以使用以下SQL语句在SQL中轻松完成此操作。

Update myTable SET 
   ( col_1,
    col_2,
    col_3,
    col4
   ) = 
   ( 'abc',
     'def',
     'ghi',
     'jkl'
    )
WHERE col_1 IS NULL and col_2 == 'ABC' AND col_10== 'XYZ'

如何在PySpark中使用数据框来做到这一点? 我尝试通过withColumns进行此操作,但一次只能进行1列。

例如-new_df = old_df.withColumn(col_1,F.when((old_df.col_1.isNull()) & old_df.col_2 == 'ABC' & (old_df.col_10 == XYZ)),'abc').otherwise(old_df.col_1)

我需要在一个数据帧中同时更新所有4列。

0 个答案:

没有答案