Ref*_*etz 2 dataframe apache-spark apache-spark-sql
我正在尝试使用dfB过滤掉dfA中的行。
dfA:
+----+---+----+------------+-----+
|year|cid|X| Y|Z|
+----+---+----+------------+-----+
+----+---+----+------------+-----+.
Run Code Online (Sandbox Code Playgroud)
dfB:
+----+---+
|year|cid|
+----+---+
+----+---+
Run Code Online (Sandbox Code Playgroud)
我的目标是year cid从dfA中填补dfB中的所有夫妻。
我认为这是明确的例外:
dfA.except(dfB)
Run Code Online (Sandbox Code Playgroud)
但是我需要两个DF中的列数相同。有没有一种方法可以对特定列执行除操作以外的操作?还是应该完全走另一条路。
不,我认为不适用于except。您需要的是左反联合:
dfA.join(dfB,Seq("year","cid"),"leftanti")
Run Code Online (Sandbox Code Playgroud)
在火花2之前,这应该做同样的事情
dfA.join(dfB.withColumn("b",lit(1)),Seq("year","cid"),"left")
.where($"b".isNull).drop($"b")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1554 次 |
| 最近记录: |