Spark数据集何时使用Except vs Left Anti Join
Posted
技术标签:
【中文标题】Spark数据集何时使用Except vs Left Anti Join【英文标题】:Spark Dataset when to use Except vs Left Anti Join 【发布时间】:2019-02-24 01:05:46 【问题描述】:我想知道调用 except (https://spark.apache.org/docs/2.1.0/api/java/org/apache/spark/sql/Dataset.html#except(org.apache.spark.sql.Dataset) 和使用左反连接之间是否存在性能差异。到目前为止,我能看到的唯一区别是使用左反连接,两个数据集可以有不同列。
【问题讨论】:
BTW 答案中的任何值? 你能考虑接受这个答案吗? 【参考方案1】:你的标题和解释不同。
但是,如果您具有相同的结构,则可以使用这两种方法来查找丢失的数据。
除了
是一个特定的实现,它强制执行相同的结构并且是一个减法运算,而
左反连接
允许使用不同的结构,但可以给出相同的结果。
用例不同:1) Left Anti Join 可以应用于与丢失数据有关的许多情况 - 没有订单的客户(尚未),数据库中的孤儿。 2)除了减去东西,例如机器学习将数据拆分为测试集和训练集。
性能不应成为真正的交易破坏者,因为它们通常是不同的用例,因此难以比较。除了将涉及相同的数据源,而 LAJ 将涉及不同的数据源。
【讨论】:
以上是关于Spark数据集何时使用Except vs Left Anti Join的主要内容,如果未能解决你的问题,请参考以下文章
Apache Spark 转换:groupByKey vs reduceByKey vs aggregateByKey
Spark Streaming + Kafka vs Just Kafka