MAPREDUCE服务 MRS-Spark应用开发建议:RDD多次使用时,建议将RDD持久化

时间:2024-09-06 10:03:29

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),该函数功能如下:

  1. 将该RDD从持久化列表中移除,RDD对应的数据进入可回收状态;
  2. 将RDD的存储级别重新设置为StorageLevel.NONE。
support.huaweicloud.com/devg-rule-mrs/mrs_07_450052.html