Python 如何使用pyspark根据某些条件在新列中填充从源表到目标表的值?

Python 如何使用pyspark根据某些条件在新列中填充从源表到目标表的值?,python,apache-spark,pyspark,apache-spark-sql,Python,Apache Spark,Pyspark,Apache Spark Sql,我有3个数据帧——df1、df2、df3 其中,df1是目标表,df2、df3是源表 df2 身份证件 名称 标志 1. 亚历克斯 30 2. 厕所 70 3. 杰森 80 您可以加入df2和df3,然后使用when功能: from pyspark.sql import functions as F df1 = df2.join(df3, ['id', 'name'], "inner")\ .withColumn("status&m

我有3个数据帧——df1、df2、df3

其中,df1是目标表,df2、df3是源表

df2

身份证件 名称 标志 1. 亚历克斯 30 2. 厕所 70 3. 杰森 80
您可以加入
df2
df3
,然后使用
when
功能:

from pyspark.sql import functions as F

df1 = df2.join(df3, ['id', 'name'], "inner")\
            .withColumn("status&marks", F.when(F.col("status")=="fail", F.col('status'))\
            .otherwise(F.col('marks'))).drop('marks', 'status')

+---+-----+------------+                                                        
| id| name|status&marks|
+---+-----+------------+
|  1| alex|        fail|
|  2| john|          70|
|  3|jason|          80|
+---+-----+------------+

假设状态或标记中存在空值,那么如何使用“何时”来实现这一点?您无需更改任何内容,它也适用于空值。酷。。。非常感谢你