spark的缓存
缓存的作用,无论是在传统程序,还是分布式程序,缓存的作用主要针对频繁操作的数据,下次操作的时候直接读取。spark亦是。Spark 支持把数据集拉到集群内的内存缓存中。当要重复访问时这是非常有用的
cache:定义
用MEMORY_ONLY储存级别对RDD进行缓存,其内部实现是调用persist()函数的。官方文档定义:
Persist this RDD with the default storage level (MEMORY_ONLY
)
- 函数原型
def cache() : this.type
- 实例
scala> var data = sc.parallelize(List(1,2,3,4))
data: org.apache.spark.rdd.RDD[Int] =
ParallelCollectionRDD[44] at parallelize at <console>:12
scala> data.getStorageLevel
res65: org.apache.spark.storage.StorageLevel =
StorageLevel(false, false, false, false, 1)
scala> data.cache
res66: org.apache.spark.rdd.RDD[Int] =
ParallelCollectionRDD[44] at parallelize at <console>:12
scala> data.getStorageLevel
res67: org.apache.spark.storage.StorageLevel =
StorageLevel(false, true, false, true, 1)
我们先是定义了一个RDD,然后通过getStorageLevel函数得到该RDD的默认存储级别,这里是NONE。然后我们调用cac