我有DF1和DF2。第一个有一个列“new_id”,第二个有一个列“db_id”
我需要FILTER OUT第一个DataFrame中的所有行,其中new_id的值不在db_id中。
val new_id = Seq(1, 2, 3, 4)
val db_id = Seq(1, 4, 5, 6, 10)
然后我需要new_id == 1和4的行保留在df1并删除带有news_id = 2和3的行,因为2和3不在db_id
这里有关于DataFrame的大量问题。我可能错过了这个。对不起,如果那是重复的。
p.s如果重要,我正在使用Scala。
答案 0 :(得分:1)
你需要的是一个左半jon:
import spark.implicits._
val DF1 = Seq(1,3).toDF("new_id")
val DF2 = Seq(1,2).toDF("db_id")
DF1.as("df1").join(DF2.as("df2"),$"df1.new_id"===$"df2.db_id","leftsemi")
.show()
+------+
|new_id|
+------+
| 1|
+------+