我正在使用Spark的Java连接器,并希望将两个DataFrame进行合并,但是DataFrame类只有unionAll方法,这是有意为之吗?是否有一种方法可以在不重复的情况下合并两个DataFrame?
我正在使用Spark的Java连接器,并希望将两个DataFrame进行合并,但是DataFrame类只有unionAll方法,这是有意为之吗?是否有一种方法可以在不重复的情况下合并两个DataFrame?
这是故意的吗?
我认为可以安全地假设这是有意为之的。其他类似于 RDD.union
和 DataSet.union
的联合运算符也会保留重复项。
如果你仔细想一下,这是有道理的。虽然等同于 UNION ALL
的操作只是一个逻辑操作,不需要访问数据或网络流量,但查找不同的元素需要洗牌,因此可能非常昂贵。
有没有办法将两个DataFrames联合在一起而不产生重复项?
df1.unionAll(df2).distinct()