MAPREDUCE服务 MRS-建议:RDD多次使用时,建议将RDD持久化
RDD多次使用时,建议将RDD持久化
RDD在默认情况下的存储级别是StorageLevel.NONE,即既不存磁盘也不放在内存中,如果某个RDD需要多次使用,可以考虑将该RDD持久化,方法如下:
调用spark.RDD中的cache()、persist()、persist(newLevel:StorageLevel)函数均可将RDD持久化,cache()和persist()都是将RDD的存储级别设置为StorageLevel.MEMORY_ONLY,persist(newLevel:StorageLevel)可以为RDD设置其他存储级别,但是要求调用该方法之前RDD的存储级别为StorageLevel.NONE或者与newLevel相同,也就是说,RDD的存储级别一旦设置为StorageLevel.NONE之外的级别,则无法改变。
如果想要将RDD去持久化,那么可以调用unpersist(blocking:Boolean = true),该函数功能如下:
- 将该RDD从持久化列表中移除,RDD对应的数据进入可回收状态;
- 将RDD的存储级别重新设置为StorageLevel.NONE。