spark 中RDD的持久化原理

2021-08-07 21:48:43 字數 623 閱讀 1749

rdd持久化是可以手動選擇不同的策略的。比如可以將rdd持久化在記憶體中、持久化到磁碟上、使用序列化的方式持久化,多持久化的資料進行多路復用。只要在呼叫persist()時傳入對應的storagelevel即可。

spark提供的多種持久化級別,主要是為了在cpu和記憶體消耗之間進行取捨。下面是一些通用的持久化級別的選擇建議:

1、優先使用memory_only,如果可以快取所有資料的話,那麼就使用這種策略。因為純記憶體速度最快,而且沒有序列化,不需要消耗cpu進行反序列化操作。

2、如果memory_only策略,無法儲存的下所有資料的話,那麼使用memory_only_ser,將資料進行序列化進行儲存,純記憶體操作還是非常快,只是要消耗cpu進行反序列化。

3、如果需要進行快速的失敗恢復,那麼就選擇帶字尾為_2的策略,進行資料的備份,這樣在失敗時,就不需要重新計算了。

4、能不使用disk相關的策略,就不用使用,有的時候,從磁碟讀取資料,還不如重新計算一次。

spark筆記 RDD的持久化

rdd.cache rdd.persist storagelevel.memory only persist方式可選取以下不同方式持久化memory and disk 如果記憶體不夠再存磁碟 disk only memory only ser 存資料時候實現序列化 可節省記憶體,但是讀取時要反序列化...

Spark效能優化 RDD持久化

如果程式中,對某乙個rdd,基於它進行了多次transformation或者action操作。那麼就非常有必要對其進行持久化操作,以避免對乙個rdd反覆進行計算。此外,如果要保證在rdd的持久化資料可能丟失的情況下,還要保證高效能,那麼可以對rdd進行checkpoint操作。除了對多次使用的rdd...

spark效能調優 RDD持久化

第一,rdd重構與優化 盡量去復用rdd,差不多的rdd,可以抽取成為乙個共同的rdd,供後面的rdd計算時,反覆使用。第二,公共rdd一定要實現持久化 持久化,也就是說,將rdd中的資料快取到記憶體中,或者快取到磁碟中,blockmanager 以後無論對這個rdd做多少次計算,那麼都是直接取rd...