我知道,与同分区 DataFrame 的连接不被视为宽变换。以下是原文中关于宽变换和窄变换的定义。
窄依赖,其中父 RDD 的每个分区最多被子 RDD 的一个分区使用,宽依赖,其中多个子分区可能依赖于它。
即使 DataFrame 是共分区的,也不一定意味着它们对应的分区位于同一节点上。例如,的分区 P1df1
和 的 P1df2
可能位于不同的节点上。因此,在连接期间仍然需要进行数据传输(例如,将 的 P1 移动df1
到 的 P1 节点df2
)。然而,这并不被视为 Shuffle。
我有两个问题?
- 那么,shuffle 到底是什么?我知道并非所有网络数据传输都被视为 shuffle。
- 哪些类型的数据传输被视为 shuffle?只有涉及宽转换的数据传输才被视为 shuffle 吗?