在pyspark中比较两个数据帧以创建新数据帧

在pyspark中比较两个数据帧以创建新数据帧,pyspark,pyspark-sql,Pyspark,Pyspark Sql,我是PySpark的新手,因此我提出了这个问题 我有两个数据帧df1和df2,其中列A、B和C。 在这两个数据帧中,只有列C可以有不同的值。 如何比较df1和df2并创建具有列A、B、C的df3,其中只有A和B之间C值不同的行 感谢您的帮助。内部连接和筛选 from pyspark.sql.functions import col df1.alias("df1").join(df2.alias("df2"), ["a", "b"]).where(col("df1.c") != col("df2

我是PySpark的新手,因此我提出了这个问题

我有两个数据帧
df1
df2
,其中列
A、B和C
。 在这两个数据帧中,只有列C可以有不同的值。 如何比较
df1
df2
并创建具有列
A、B、C
的df3,其中只有
A
B
之间
C
值不同的行

感谢您的帮助。

内部连接和筛选

from pyspark.sql.functions import col

df1.alias("df1").join(df2.alias("df2"), ["a", "b"]).where(col("df1.c") != col("df2.c"))
如果您还想处理缺少的值

df1.alias("df1").join(df2.alias("df2"), ["a", "b"], "fullouter").where(
    ~col("df1.c").eqNullSafe(col("df2.c"))
)

因此,您希望创建一个新的数据帧,其中包含a列和B列(在df1和df2中相等),然后计算C列中a列和B列之间的差异?@BillyJo_rambler No my df3应该只包含C值在df1和df2之间不同的行。这解释了吗?@BillyJo_rambler我也更新了这个问题。