【问题标题】:Do we need to call cache for single action?我们是否需要为单个操作调用缓存?
【发布时间】:2018-01-04 07:47:32
【问题描述】:

例如,我有一个 spark 会话,这个会话只包含一个动作和许多转换。并且在任务执行期间没有分区会失败。那么在这种情况下cache 是不必要的吗?因为缓存是用来在action之间共享rdd的。

【问题讨论】:

    标签: scala apache-spark


    【解决方案1】:

    您几乎回答了自己的问题。

    cache 只会在您缓存的 RDD 上至少调用一个操作后才会生效。这意味着 RDD 的整个 DAG 至少需要从头计算一次。

    由于你只有一个动作,cache 不会做任何事情。除了吃掉你的执行者内存。

    【讨论】:

    • 确实如此,但在某些情况下,单个操作可能会多次使用同一个 RDD,例如使用自连接。
    • 根据评论我不相信。你确定吗?我明天去看看。
    • @puhlen 我同意
    【解决方案2】:

    不,您不需要致电cache()。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-12
      • 2017-06-12
      • 1970-01-01
      • 2012-07-31
      • 1970-01-01
      相关资源
      最近更新 更多