PySpark-如果表1中存在ID&;表2,用TRUE else FALSE填充表1中的列

PySpark-如果表1中存在ID&;表2,用TRUE else FALSE填充表1中的列,pyspark,Pyspark,我的目标是在ID上将两个表合并在一起。表2中的一些表没有表1中的所有ID,这没关系-在这种情况下,我想根据两个表中是否存在ID,用真值或假值填充第三列 让我试着把我的问题说清楚 假设我有两张桌子: ID TIME ID TIME 1 1/1/21 2 1/1/21 4 1/1/21 4 1/1/21 7 1/1/21 8 1/1/21 时间表并不重要,重要的是ID 4。我想在ID4中填写这两个表中是否存在。最后的输出是这样

我的目标是在ID上将两个表合并在一起。表2中的一些表没有表1中的所有ID,这没关系-在这种情况下,我想根据两个表中是否存在ID,用真值或假值填充第三列

让我试着把我的问题说清楚

假设我有两张桌子:

ID  TIME       ID   TIME
1   1/1/21     2    1/1/21
4   1/1/21     4    1/1/21
7   1/1/21     8    1/1/21
时间表并不重要,重要的是ID 4。我想在ID4中填写这两个表中是否存在。最后的输出是这样的,参考表1

  ID    TIME      EXISTS_BOTH_TABLES
  1     1/1/21    FALSE
  4     1/1/21    TRUE
  7     1/1/21    FALSE

我意识到这可能是一种特殊类型的连接,但我的斗争也存在于阐明我到底需要什么。我希望这有助于您理解我的问题。

我还没有测试以下代码,但您应该按照以下思路做一些事情:

from pyspark.sql.functions import when
df1.join(df2, 'ID', 'left').withColumn('CONVO', when(df2.ID.isNull(), False).otherwise(True))
在ID上左键连接,并在ID不匹配时进行检测,以将CONVA列填充为False,否则为true

如果您想同时执行这两个操作,可以执行完全联接,并检测df1.ID和df2.ID的空值


编辑:我相信您在示例中犯了一个错误,在结果表中,ID 7应该为True

CONVA列来自何处?如何计算?根据ID是否在两列中,用真/假填充新列非常感谢您的回答。不幸的是,我没能让它工作。