Spark RDD通过persist方法或cache方法可以将计算结果的缓存,但是并不是这两个方法被调用时立即缓存,而是触发后面的action时,该RDD才会被缓存在计算节点的内存中并供后面重用。下面是persist方法或cache方法的函数定义:
def persist(): this.type = persist(StorageLevel.MEMORY_ONLY)
def cache(): this.type = persist()
视频讲解如下 |
---|
【赵渝强老师】Spark RDD的缓存机制 |
通过函数的定义发现,cache最终也是调用了persist方法,默认的存储级别都是仅在内存存储一份,Spark在object StorageLevel中定义了缓存的存储级别。下面是在StorageLevel中的定义的缓存级别。
val NONE = new StorageLev