6

我想知道调用 except ( https://spark.apache.org/docs/2.1.0/api/java/org/apache/spark/sql/Dataset.html#except(org.apache. spark.sql.Dataset)并使用左反连接。到目前为止,我能看到的唯一区别是使用左反连接,两个数据集可以有不同的列。

4

1 回答 1

4

您的标题与解释不同。

但是,如果您具有相同的结构,则可以使用这两种方法来查找丢失的数据。

除了

是一个特定的实现,它强制执行相同的结构并且是一个减法运算,而

左反连接

如您所说,允许不同的结构,但可以给出相同的结果。

用例不同: 1) Left Anti Join 可以应用于与丢失数据有关的许多情况 - 没有订单的客户(尚未),数据库中的孤儿。2)除了减去东西,例如机器学习将数据分成测试和训练集。

性能不应成为真正的交易破坏者,因为它们通常是不同的用例,因此难以比较。除了将涉及相同的数据源,而 LAJ 将涉及不同的数据源。

于 2018-09-19T22:33:51.370 回答