在pyspark中比较两个数据帧以创建新数据帧
我是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
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我也更新了这个问题。