spark复习笔记(6):RDD持久化
在spark中最重要的功能之一是跨操作在内存中持久化数据集。当你持久化一个RDD的时候,每个节点都存放了一个它在内存中计算的一个分区,并在该数据集的其他操作中进行重用,持久化一个RDD的时候,节点上的每个分区都会保存到内存中,这使得将来的action更加的快。
缓存技术是迭代算法和交互式查询的重要工具
可以使用persist()和cache()方法进行rdd的持久化,persist()是持久化到磁盘,而cache()是缓存到内存
action第一次计算的时候才会发生persist()
spark的 cache是容错的,如果rdd的任何一个分区丢失了,都可以通过rdd最初的变化来找回
persist可以使用不同的存储级别来进行持久化
MEMORY_ONLY //只存放到内存
MEMORY_AND_DISK //存放到硬盘和内存
DISK_ONLY //只存放到磁盘
MEMORY_AND_DISK //内存和磁盘
MEMORY_ONLY_SER //内存存储(可以串行化)
MEMORY_ONLY_2 //带有副本
MEMORY_AND_DISK_2 //快速容错