StorageLevel关键属性
原则 可以使用内存 就不要使用磁盘了
useDisk_ | 是否使用磁盘 |
useMemory_ | 是否使用内存 |
deserialized_ | 是否进行反序列化(即原生方式,不序列化) |
replication_ | 备份数目 |
存储级别 | 描述 |
MEMORY_ONLY |
将RDD 作为反序列化的的对象存储JVM 中。如果RDD不能被内存装下,一些分区将不会被缓存,并且在需要的时候被重新计算。
这是是默认的级别
|
MEMORY_AND_DISK | 将RDD 作为反序列化的的对象存储在JVM 中。如果RDD不能被与内存装下,超出的分区将被保存在硬盘上,并且在需要时被读取 |
MEMORY_ONLY_SER |
将RDD 作为序列化的的对象进行存储(每一分区占用一个字节数组)。
通常来说,这比将对象反序列化的空间利用率更高,尤其当使用fast serializer,但在读取时会比较占用CPU
|
MEMORY_AND_DISK_SER | 与MEMORY_ONLY_SER 相似,但是把超出内存的分区将存储在硬盘上而不是在每次需要的时候重新计算 |
DISK_ONLY | 只将RDD 分区存储在硬盘上 |
DISK_ONLY_2等带2的 | 与上述的存储级别一样,但是将每一个分区都复制到两个集群结点上 |