我们正在将数据从table1
移到table2
。如果table1
中存在table2
中的数据,则需要创建对帐报告。
例:
val df1 = """(select col1, col2, col3, col4 from table1)"""
val df2 = """(select col21,col22,col23,c24 from table2)"""
现在,我需要检查table1中的数据是否存在于table2中,如果丢失,则将其写入报告。
最佳答案
左反连接是比较两个数据框的一列或多列来过滤数据框1中存在但数据框2中不存在的行的一种优雅方法。
由于您对left anti join
解决方案不满意,因此让我们继续尝试另一种方法。
假设我们有两个具有共同列名的数据框:
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检查left-anti-join-in-spark提供的漂亮解决方案
关于scala - 如何在Scala(Spark)中比较两个数据框中的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60116514/