apache-spark - Spark 什么时候会自动清理缓存的 RDD?

标签 apache-spark caching spark-dataframe rdd

已使用 scala 终端中的 rdd.cache() 方法缓存的 RDD 正在存储在内存中。

这意味着它将消耗一部分可供 Spark 进程本身使用的内存。

话说如果内存有限,缓存的RDD越来越多,spark什么时候会自动清理已经被rdd缓存占用的内存呢?

最佳答案

Spark 将清理缓存的 RDDDatasets/DataFrames:

  • 当通过调用 RDD.unpersist ( How to uncache RDD? )/Dataset.unpersist 方法或 Catalog.clearCache 明确要求时。
  • 定期,由 cache cleaner :

    Spark automatically monitors cache usage on each node and drops out old data partitions in a least-recently-used (LRU) fashion. If you would like to manually remove an RDD instead of waiting for it to fall out of the cache, use the RDD.unpersist() method.

  • 当相应的分布式数据结构被垃圾回收时。

关于apache-spark - Spark 什么时候会自动清理缓存的 RDD?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47695368/

相关文章:

java - 如何使用apache-spark快速转换多节点上的大规模数据?

ios - 如何查找UIwebview是否正在使用缓存加载IOS中的数据

c# - 异步调用后丢失变量

apache-spark - root 临时目录 :/tmp/hive on HDFS should be writable. 当前权限为:rwx---------(在 Linux 上)

numpy - 将 Spark 数据帧收集到 Numpy 矩阵中

apache-spark - pyspark计算每组的空值数量

hadoop - 如何将 Spark ML Lib 模型保存/导出到 PMML?

windows - Windows NT 是否缓存或刷新 INI 文件写入内容?

apache-spark - 为什么Spark作业失败并显示“退出代码:52”

python - 从大文件中提取特定行