例如,我有一个火花会话,而这个会话只包含一个操作和许多转换。并且在任务执行期间不会失败任何分区。那么在这种情况下cache
是不必要的吗?因为缓存用于在操作之间共享 rdd。
你几乎回答了你自己的问题。
cache
只有在您缓存的 RDD 上至少调用一个操作后才会生效。这意味着RDD的整个DAG至少需要从头开始计算一次。
由于您只有一个操作,因此cache
不会执行任何操作。除了消耗你的执行者记忆。
不,在这种情况下,您不需要调用cache()
。