基于公共值的 Spark 过滤器 DataFrames
Spark filter DataFrames based on common values
我有 DF1 和 DF2。第一个有 "new_id" 列,第二个有 "db_id"
列
我需要过滤掉第一个 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
这里有很多关于 DataFrames 的问题。我可能错过了这个。抱歉,如果这是重复的。
p.s 如果重要的话,我正在使用 Scala。
你需要的是 left-semi 约翰:
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|
+------+
我有 DF1 和 DF2。第一个有 "new_id" 列,第二个有 "db_id"
列我需要过滤掉第一个 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
这里有很多关于 DataFrames 的问题。我可能错过了这个。抱歉,如果这是重复的。
p.s 如果重要的话,我正在使用 Scala。
你需要的是 left-semi 约翰:
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|
+------+