答案是否定的
那么第二次就不会再加载数据了:如下图
)
将RDD元素从磁盘缓存到内存,相当于persist(MEMORY_ONLY)函数的功能。
但是 spark 是不是只基于内存计算呢? 答案是否定的。
因为有种缓存策略叫,即基于内存,又基于磁盘(也就是hdfs)
例如,如果前面我们经过了一大堆transformations 算子的计算,想把结果缓存下来,但是
内存又不够,此时如果我们选择只存入内存,那么没有存下的部分数据只能丢掉了,那么再次使用时,只能从内存里获得一部分数据,那些丢掉的数据必须重新计算了。
那么 如果我们选择放入 内存和磁盘的方式,那么内存放不下的那部分数据,就会放到磁盘,此时再次使用数据时就可以直接从内存和磁盘取了(注,这种缓存方式,磁盘上放的也是结果数据)
网友评论