Apache spark 特定列Spark 1.6除外
我正在尝试使用dfB从dfA中筛选出行 dfA: dfB: 我的目标是从dfA中填写dfB中所有Apache spark 特定列Spark 1.6除外,apache-spark,dataframe,apache-spark-sql,Apache Spark,Dataframe,Apache Spark Sql,我正在尝试使用dfB从dfA中筛选出行 dfA: dfB: 我的目标是从dfA中填写dfB中所有year cid 我认为这是一个明显的例子,除了: dfA.except(dfB) 但是,我需要两个DF中的列数相同。 是否有方法对特定列执行EXPECT操作? 或者应该完全走另一条路。不,我认为这对不起作用,除了。您需要的是左反联接: dfA.join(dfB,Seq("year","cid"),"leftanti") 在spark 2之前,此操作也应如此 dfA.join(dfB.withCo
year cid
我认为这是一个明显的例子,除了:
dfA.except(dfB)
但是,我需要两个DF中的列数相同。
是否有方法对特定列执行EXPECT操作?
或者应该完全走另一条路。不,我认为这对
不起作用,除了。您需要的是左反联接:
dfA.join(dfB,Seq("year","cid"),"leftanti")
在spark 2之前,此操作也应如此
dfA.join(dfB.withColumn("b",lit(1)),Seq("year","cid"),"left")
.where($"b".isNull).drop($"b")
你可以用DFB做dfA的左外连接,你需要的是一个左反join@RameshMaharjan似乎有点过激不?spark 1.6中是否有反连接部分?@user3741859 noSorry我刚注意到我在标题中没有提到它我在spark 1.6上编辑问题它不应该为null你想删除所有匹配的内容吗?@user3741859您想要所有不显示在dfB中的行,对吗?在这种情况下,您必须保留来自dfA的在dfB中不匹配的数据,即b为空。。。
dfA.join(dfB,Seq("year","cid"),"leftanti")
dfA.join(dfB.withColumn("b",lit(1)),Seq("year","cid"),"left")
.where($"b".isNull).drop($"b")