答案 0 :(得分:100)
通常,这意味着已从缓存中提取数据,并且无需重新执行给定的阶段。它与您的DAG一致,表明下一阶段需要改组(reduceByKey
)。只要有洗牌涉及Spark automatically caches generated data:
Shuffle还会在磁盘上生成大量中间文件。从Spark 1.3开始,这些文件将被保留,直到不再使用相应的RDD并进行垃圾回收。这样做是为了在重新计算谱系时不需要重新创建shuffle文件。
答案 1 :(得分:0)
假设您有一个包含一些数据的初始数据框。现在您在它上面执行几个转换并对最终数据帧执行多个操作。如果您缓存了一个数据框,那么它会在您调用操作时将其具体化,并将其以具体化形式保存在内存中。因此,当下一个动作被调用时,它将遍历整个 DAG,在此过程中,它将看到数据帧已被缓存,因此它将通过利用它在内存中以物化形式具有的已就绪状态来跳过这些阶段。< /p>
当它跳过阶段时,您将在 spark UI 中看到它被跳过,它加快了您的操作,因为它不必从根计算 dag,并且可以在缓存数据帧之后开始其操作。
>