【问题标题】:What happens to persisted RDD once Spark Job finishes?Spark Job 完成后,持久化的 RDD 会发生什么?
【发布时间】:2017-05-08 19:34:49
【问题描述】:

当 Spark 作业以 Success 完成后,持久化 Spark RDD 会发生什么情况?

我们是否也需要显式地编写一些代码来取消持久化?

或

对于每个持久化的 RDD,是否会自动进行非持久化?

【问题讨论】:

    标签: apache-spark


    【解决方案1】:

    我们是否也需要显式地编写一些代码来取消持久化?

    是的

    对于每个持久化的 RDD,是否会自动进行非持久化?

    不,您需要通过调用
    RDD.unpersist()
    明确执行此操作 或
    df1.unpersist()
    并且总是在沿袭结束后,在涉及持久/缓存的 df 的最后一个操作之后取消持久化 df。

    【讨论】:

    • 是的,当然.. 非常感谢您的干净回答。最后一次操作后我将取消我的 DF。
    • @ sanket :如果我的 Spark Job 中只有一个 Action,那么持久化 RDD 是一种好习惯吗?如果我坚持一个 RDD,我是否会在性能方面获得任何好处
    【解决方案2】:

    spark的官方文档说

    Spark 会自动监控每个节点上的缓存使用情况,并以最近最少使用 (LRU) 的方式丢弃旧数据分区。如果您想手动删除 RDD 而不是等待它从缓存中掉出,请使用 RDD.unpersist() 方法。

    请看http://spark.apache.org/docs/latest/programming-guide.html#removing-data

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-01-16
      • 1970-01-01
      • 2016-07-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多