val NONE = new StorageLevel(false, false, false, false)
val DISK_ONLY = new StorageLevel(true, false, false, false)
val DISK_ONLY_2 = new StorageLevel(true, false, false, false, 2)
val MEMORY_ONLY = new StorageLevel(false, true, false, true)
val MEMORY_ONLY_2 = new StorageLevel(false, true, false, true, 2)
val MEMORY_ONLY_SER = new StorageLevel(false, true, false, false)
val MEMORY_ONLY_SER_2 = new StorageLevel(false, true, false, false, 2)
val MEMORY_AND_DISK = new StorageLevel(true, true, false, true)
val MEMORY_AND_DISK_2 = new StorageLevel(true, true, false, true, 2)
val MEMORY_AND_DISK_SER = new StorageLevel(true, true, false, false)
val MEMORY_AND_DISK_SER_2=new StorageLevel(true, true, false, false, 2)
valOFF_HEAP = new StorageLevel(true, true, true, false, 1)
复制代码
需要阐明的是,使用RDD的缓存机制,数据可能丢失;或者会由于内存的不敷而造成数据被删除。可以通过使用RDD的查抄点机制了包管缓存的容错,纵然缓存丢失了也能包管盘算的正确执行。
下面是使用RDD缓存机制的一个示例。这里使用RDD读取一个大的文件,该文件中包罗918843条记录。通过Spark Web Console可以对比出在不使用缓存和使用缓存时,执行效率的差异。
(1)读取一个大文件。