spark cache仅保留RDD的一小部分

时间:2015-04-07 22:07:53

标签: caching apache-spark swap

当我明确调用rdd.cache时,我可以从spark控制台存储选项卡中看到,实际上只缓存了一小部分rdd。我的问题是剩下的部分在哪里? Spark如何决定在缓存中留下哪个部分?

同样的问题适用于sc.textFile()读入的初始原始数据。我知道这些rdd会自动缓存,即使spark控制台存储表没有显示有关其缓存状态的任何信息。我们知道有多少是缓存与丢失的吗?

1 个答案:

答案 0 :(得分:4)

cache()persist(StorageLevel.MEMORY_ONLY)相同,您的数据量可能超过可用内存。然后,Spark以“最近最少使用”的方式驱逐缓存。

您可以通过设置配置选项来调整保留的内存以进行缓存。有关详细信息,请参阅Spark Documentation,并注意:spark.driver.memoryspark.executor.memoryspark.storage.memoryFraction

不是专家,但我认为textFile()不会自动缓存任何内容; Spark Quick Start显式缓存文本文件RDD:sc.textFile(logFile, 2).cache()