【发布时间】:2017-05-08 19:34:49
【问题描述】:
当 Spark 作业以 Success 完成后,持久化 Spark RDD 会发生什么情况?
我们是否也需要显式地编写一些代码来取消持久化?
或
对于每个持久化的 RDD,是否会自动进行非持久化?
【问题讨论】:
标签: apache-spark
当 Spark 作业以 Success 完成后,持久化 Spark RDD 会发生什么情况?
我们是否也需要显式地编写一些代码来取消持久化?
或
对于每个持久化的 RDD,是否会自动进行非持久化?
【问题讨论】:
标签: apache-spark
我们是否也需要显式地编写一些代码来取消持久化?
是的
对于每个持久化的 RDD,是否会自动进行非持久化?
不,您需要通过调用RDD.unpersist()
明确执行此操作
或df1.unpersist()
并且总是在沿袭结束后,在涉及持久/缓存的 df 的最后一个操作之后取消持久化 df。
【讨论】:
spark的官方文档说
Spark 会自动监控每个节点上的缓存使用情况,并以最近最少使用 (LRU) 的方式丢弃旧数据分区。如果您想手动删除 RDD 而不是等待它从缓存中掉出,请使用 RDD.unpersist() 方法。
请看http://spark.apache.org/docs/latest/programming-guide.html#removing-data
【讨论】: