更新时间:2017-09-01 来源:黑马程序员云计算大数据培训学院 浏览量:
三,对公用的RDD进行持久化
持久化场景:对于一个RDD被多次引用到,并且这个RDD计算过程复杂,计算时间特别耗 时,那么就可以对这个RDD进行持久化
如何进行持久化:调用RDD.persist(), 或者RDD.cache()
【注意】cache方法的底层就是调用persist方法
如果对RDD做持久化,默认持久化级别是StorageLevel.MEMEORY_ONLY ,也就是持久化到内存中去,这种持久化级别效率是最快的,但是由于是纯Java对象保存到内存中,那么内存可能保存的数据就会较少
如果当我们集群资源有限时,那么我们可以采用MEMORY_ONLY_SER,也就是将Java对象进行序列化之后再持久化到内存中去,这种持久化的好处是能够持久化更多的数据到内存中,但是持久化时需要序列化,取出来又需要反序列化这一过程,性能相对于MEMORY_ONLY这种持久化要稍微弱点,但是还是比较高效的
如何选择RDD持久化策略
Spark提供的多种持久化级别,主要是在CPU和内存之间进行取舍,下面是一些通用的持久化级别的选择建议:
1、有限使用MEMORY_ONLY,如果可以缓存所有数据的话,那么就使用这种策略,因为春内村速度最快,而且没有序列化,不需要消耗CPU进行反序列化操作
2、如果MEMORY_ONLY策略,无法存储所有的数据的话,那么使用MEMORY_ONLY_SER,将数据进行序列化存储,纯内存操作还是非常快的,只是要消耗CPU进行反序列化
3、如果需要进行快速的失败恢复,那么就选择带后缀为_2的策略,进行数据的备份,这样在失败时,就不需要重新计算了
4、能不适用DISK相关的策略,就不要使用,有的时候,从磁盘读取数据还不如重新计算一次
毕业16个工作日,平均薪资13180元,就业率100%,广州黑马AI智能应用开发(Java)学科20250529班
2026-03-06毕业32个工作日,平均薪资11147元,就业率95%,广州黑马AI智能应用开发(Java)学科20250326班
2026-03-05黑马程序员2025全国就业数据发布:全学科平均就业率92.07%,AI开发类就业平均薪资达11869.67元。
2026-03-05黑马全国校区齐开班!场面太太太壮观了!
2026-03-03AI智能应用开发课程紧贴企业刚需,全程高效学习,直达中高级软件开发水平
2026-02-28风口正劲!黑马程序员又一AI智能应用开发班毕业当天100%就业!
2026-02-27