如何在scala(spark)中比较两个Dataframe中的列

vi4fp9gy  于 2021-05-27  发布在  Hadoop
关注(0)|答案(1)|浏览(729)

我们正在从 table1table2 . 我需要创建一个对账报告,如果数据在 table1 存在于 table2 .
例子:

val df1 = """(select col1, col2, col3, col4 from table1)""" 
val df2 = """(select col21,col22,col23,c24 from table2)"""

现在我需要检查表1中的数据是否存在于表2中,如果数据丢失,则写入报表。

ugmeyewa

ugmeyewa1#

通过比较两个Dataframe中的一列或多列,左反联接是筛选Dataframe1中存在但Dataframe2中不存在的行的一种优雅方法。
因为你对 left anti join 因此,让我们用另一种方法来解决这个问题。
假设有两个Dataframe具有公共列名:

val DF1 = Seq(
  ("Ravi", 20),
  ("Kiran", 25),
  ("Gaurav", 30),
  ("Vinay", 35),
  ("Mahesh", 40)
).toDF("name", "age")
val DF2 = Seq(
  ("Ravi", 20),
  ("Mahesh", 40)
).toDF("name", "age")
DF1.except(DF2).show()


还检查了一个美丽的解决方案,由tzach zohar通过使用左反连接在Spark

相关问题