【发布时间】:2018-12-14 11:21:35
【问题描述】:
我对 PySpark 中的连接术语感到非常困惑。我将列出我如何理解其中两个连接,我只是想知道我的理解是否正确,因为我发现文档更令人困惑而不是有用。
我们从两个数据帧开始:dfA 和 dfB。
dfA.join(dfB, 'user', 'inner')
表示只连接dfA 和dfB 在用户列上有共同元素的行。 (用户列上 A 和 B 的交集)。
dfA.join(dfB, 'user', 'leftanti')
表示用dfA中的元素构造一个数据框THAT ARE NOT在dfB中。
这两个是正确的吗?
【问题讨论】:
-
你的理解是正确的。更好的是,在样本数据上运行它并检查输出。
-
是的,做到了。我只是从我的数据库中得到有趣的结果,所以我想确保至少我知道我在说什么。谢谢。如果有人愿意,您可以写一个关于联接的更详细的答案(可能有一些例子),我会接受答案。
-
你能展示一下有趣的结果是什么吗?
-
例如我有一个数据集,我们称它为actions_night,另一个叫actions_day。如果我对actions_night 和actions_day 进行leftanti 连接,我得到0。不可能只在夜间没有看到一个用户。
-
为什么说不可能?
标签: sql apache-spark pyspark pyspark-sql