Spark中cache操作是否会引发shuffle?
Cache操作不会引发Shuffle
结论很明确:cache操作不会触发shuffle,原因如下:
cache的核心逻辑是持久化数据:它只是将当前DataFrame/RDD的分区数据,直接保留在原本持有该分区的executor的内存或磁盘上,完全不会改变数据的分区分布、存储位置,也不会触发任何数据移动。- 对照
shuffle的定义:只有当数据在不同worker node之间,或是同一worker node内的不同executor之间发生移动时,才属于shuffle操作。而cache全程没有数据移动的动作,自然不会引发shuffle。
补充说明:只有当操作需要对数据进行重新分区、重分布时(比如groupBy、非广播场景的join、repartition等),才会触发shuffle。cache仅仅是对现有数据的持久化快照,不涉及任何数据重分布逻辑。
内容的提问来源于stack exchange,提问作者user16798185
相关产品推荐
相关产品推荐

