【发布时间】:2018-01-04 07:47:32
【问题描述】:
例如,我有一个 spark 会话,这个会话只包含一个动作和许多转换。并且在任务执行期间没有分区会失败。那么在这种情况下cache 是不必要的吗?因为缓存是用来在action之间共享rdd的。
【问题讨论】:
标签: scala apache-spark
例如,我有一个 spark 会话,这个会话只包含一个动作和许多转换。并且在任务执行期间没有分区会失败。那么在这种情况下cache 是不必要的吗?因为缓存是用来在action之间共享rdd的。
【问题讨论】:
标签: scala apache-spark
您几乎回答了自己的问题。
cache 只会在您缓存的 RDD 上至少调用一个操作后才会生效。这意味着 RDD 的整个 DAG 至少需要从头计算一次。
由于你只有一个动作,cache 不会做任何事情。除了吃掉你的执行者内存。
【讨论】:
不,您不需要致电cache()。
【讨论】: