Apache spark 更新Pyspark Dataframe中的多列

Apache spark 更新Pyspark Dataframe中的多列,apache-spark,dataframe,pyspark,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' 如何使用数

我有一个数据框,它包含大约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中实现这一点? 我试着通过
和columns
来做,但一次只能做一列

例如-
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')。否则(old_-df.col_1)


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

可以多次调用“withColumn”,如“old_df.withColumn(..).withColumn(..)”。可以通过将条件移动到变量来避免重复的逻辑条件。是的,在这种情况下,我需要确保最后更新
列1
,因为
列1
也存在于逻辑条件中,否则
列2
列3
列4
将永远不会更新为
列1.isNull()
条件永远不会满足“withColumn”可以多次调用,如“old_df.withColumn(..).withColumn(..)”。可以通过将条件移动到变量来避免重复的逻辑条件。是的,在这种情况下,我需要确保最后更新
列1
,因为
列1
也存在于逻辑条件中,否则
列2
列3
列4
将永远不会更新为
列1.isNull()
条件永远不会满足