代码之家  ›  专栏  ›  技术社区  ›  Qubix

内部联接和反联接之间有什么区别

  •  1
  • Qubix  · 技术社区  · 7 年前

    我完全被PySpark中的连接术语弄糊涂了。我将列出我是如何理解其中两个连接的,我只想知道我的理解是否正确,因为我发现文档更令人困惑而不是有用。

    我们从两个数据帧开始: dfA dfB .

    dfA.join(dfB, 'user', 'inner') 
    

    dfA dfB 在用户列上具有公共元素。(用户列上A和B的交点)。

    dfA.join(dfB, 'user', 'leftanti') 
    

    意味着使用中的元素构造数据帧 dfA 在里面 dfB .

    1 回复  |  直到 7 年前
        1
  •  1
  •   Derviş Kayımbaşıoğlu    7 年前

    内部联接=>如果DFB没有DFA的记录,那么它不会返回不匹配的记录。

    -- NOT EXISTS
    SELECT *
    FROM dfA
    WHERE NOT EXISTS (
      SELECT 1
      FROM dfB
      WHERE dfA.DeptName = dfB.DeptName
    )
    

    SELECT * 
    FROM dfA
    LEFT OUTER JOIN DFB
      ON dfA.DeptName = dfB.DeptName
    where dfB.DeptName IS NULL;
    
    推荐文章