我有一个rdd,我在从s3加载数据后缓存,因为如果我丢失了执行程序,我不想从s3重新提取。然后我在该rdd上进行了一系列转换,然后再次缓存。
此时,是否有任何理由将第一个缓存的rdd保留在缓存中?如果我不再使用早期的rdd,那么所有后期阶段是否会从最近缓存的转换中拉出来?
答案 0 :(得分:0)
如果我失去执行人,我不想从s3重新开始。
默认caching
变体不会保护您免受遗嘱执行人员的损失。 Spark提供了复制的cache
选项(MEMORY_ONLY_SER_2
,MEMORY_AND_DISK_SER_2
,DISK_ONLY_2
),这些选项在节点发生故障时添加了一些保护,但是比非复制变体更昂贵。
有没有理由将第一个缓存的rdd留在缓存中?
如果第二个已经实现,那么没有理由保留第一个,但如果有必要,LRU清洁工应该能够在没有你帮助的情况下处理这个案例。