【发布时间】:2017-12-30 11:43:58
【问题描述】:
已使用 scala 终端中的 rdd.cache() 方法缓存的 RDD 正在存储在内存中。
这意味着它将消耗一部分可供 Spark 进程本身使用的内存。
话说如果内存有限,缓存的RDD越来越多,spark什么时候会自动清理已经被rdd缓存占用的内存呢?
【问题讨论】:
-
如果你想取消缓存你的RDD,你可以试试
.unpersist():见stackoverflow.com/questions/25938567/how-to-uncache-rdd -
不,我想知道 Spark 什么时候会自动执行?
-
ContextCleaner 负责定期执行此操作:github.com/apache/spark/blob/master/core/src/main/scala/org/…
-
缓存以最近最少使用的方式清理。此外,为缓存分配的内存与用于计算的内存是分开的。
标签: apache-spark caching spark-dataframe rdd