我对PySpark中的连接术语感到很困惑。我将列出我如何理解其中两个联接,我只是想知道我的理解是否正确,因为我发现文档更令人困惑而不是有用。
我们从两个数据帧开始:dfA和dfB。
dfA.join(dfB, 'user', 'inner')
意味着只加入用户列中的行dfA和dfB公共元素。(用户列上A和B的交叉点)。
dfA.join(dfB, 'user', 'leftanti')
装置构造一个数据帧的元素中dfA 未中dfB。
这两个是正确的吗?
inner join =>如果DFB没有DFA记录,那么它不会返回不匹配的记录。
left anti =>最接近不存在
-- NOT EXISTS
SELECT *
FROM dfA
WHERE NOT EXISTS (
SELECT 1
FROM dfB
WHERE dfA.DeptName = dfB.DeptName
)
还有LEFT OUTER JOIN等价物
SELECT *
FROM dfA
LEFT OUTER JOIN DFB
ON dfA.DeptName = dfB.DeptName
where dfB.DeptName IS NULL;
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。