我实际上正在尝试将以下sql转换为pyspark。
UPDATE table_a a, table_b b
SET a.flag=1
WHERE
(
b.NOD=1
OR
(b.flag_3=1 AND b.flag_1=0 AND b.testingSold=0)
)
AND b.uuid=a.uuid
我尝试了以下代码,但它不起作用:
table_a = table_a.withColumn("flag", F.when((table_b.NOD ==1) | (table_b.flag_3 == 1) & (table_b.flag_1==0) & table_a.uuid == table_b.uuid), F.lit(1))
执行此操作的正确方法是什么?
最佳答案
您可以执行以下操作
from pyspark.sql import functions as F
table_a.join(table_b, table_a.uuid == table_b.uuid).withColumn("flag", F.when((table_b.NOD ==1) | ((table_b.flag_3 == 1) & (table_b.flag_1==0) & (table_b.testingSold == 0), F.lit(1)))
关于python - 如何使用来自不同数据帧的条件将列添加到 pyspark 数据帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45822645/