RDD缓存
RDD的缓存是把RDD保存在内存中,为后续重用提供数据支持。RDD的缓存可以提高系统的容错性。RDD的缓存提供了两种方法。分别是persist方法和cache方法,那么这两个方法有什么区别呢?通过查看源码发现,cache方法最终也是调用persist方法:
cache调用的是persist默认参数的方法,所以cache和不带参数的persist方法都是使用StorageLevel.MEMORY_ONLY这和参数,那么这个参数是什么意思?都有哪些参数?下面来详细看看源码:
再来解释:
//NONE 就是不缓存,等于没用这个方法
val NONE = new StorageLevel(false, false, false, false)
//只写到磁盘去,比较安全,但是性能低,因为涉及到io,所以性能低
val DISK_ONLY = new StorageLevel(true