spark 只基于内存计算

答案是否定的

那么第二次就不会再加载数据了:如下图


将RDD元素从磁盘缓存到内存,相当于persist(MEMORY_ONLY)函数的功能。

但是 spark 是不是只基于内存计算呢? 答案是否定的。

因为有种缓存策略叫,即基于内存,又基于磁盘(也就是hdfs)

例如,如果前面我们经过了一大堆transformations  算子的计算,想把结果缓存下来,但是

内存又不够,此时如果我们选择只存入内存,那么没有存下的部分数据只能丢掉了,那么再次使用时,只能从内存里获得一部分数据,那些丢掉的数据必须重新计算了。

那么 如果我们选择放入 内存和磁盘的方式,那么内存放不下的那部分数据,就会放到磁盘,此时再次使用数据时就可以直接从内存和磁盘取了(注,这种缓存方式,磁盘上放的也是结果数据)

你可能感兴趣的:(spark 只基于内存计算)