Exp*_*rer 1 scala apache-spark apache-spark-sql
我有以下情况:
我有2个数据帧只包含1列让我们说
DF1=(1,2,3,4,5)
DF2=(3,6,7,8,9,10)
Run Code Online (Sandbox Code Playgroud)
基本上这些值是键,如果DF1中的键不在DF2中,我正在创建DF1的镶木地板文件(在当前示例中,它应该返回false).我目前达到我要求的方法是:
val df1count= DF1.count
val df2count=DF2.count
val diffDF=DF2.except(DF1)
val diffCount=diffDF.count
if(diffCount==(df2count-df1count)) true
else false
Run Code Online (Sandbox Code Playgroud)
这种方法的问题是我调用动作元素4次,这肯定不是最好的方法.有人可以建议我实现这一目标的最有效方法吗?
您可以使用intersect获取两个DataFrames共有的值,然后检查它是否为空:
DF1.intersect(DF2).take(1).isEmpty
Run Code Online (Sandbox Code Playgroud)
这将只使用一个action(take(1))和一个相当快的action .
| 归档时间: |
|
| 查看次数: |
5675 次 |
| 最近记录: |