RDD中cache和persist的區別

2021-07-11 04:26:24 字數 682 閱讀 4463

rdd中cache和persist的區別

通過觀察rdd.scala源**即可知道cache和persist的區別:

def persist (newlevel: storagelevel): this.type =

sc.persistrdd(this)

sc.cleaner.foreach(_.registerrddforcleanup(this))

storagelevel = newlevel

this}

/** persist this rdd with the default storage level (`memory_only`). */

def persist (): this.type = persist( storagelevel.memory_only )

/** persist this rdd with the default storage level (`memory_only`). */

def cache (): this.type = persist()

可知:1)rdd的cache()方法其實呼叫的就是persist方法,快取策略均為memory_only;

2)可以通過persist方法手工設定storagelevel來滿足工程需要的儲存級別;

3)cache或者persist並不是action;

spark中cache和checkpoint使用

1 cache cache是為了追求計算的速度 spark中計算任務在記憶體中,但是結果是儲存在磁碟中的,所以首次執行會慢,之後會拿磁碟中的計算結果,所以後面會快很多 通過對結果的rdd分布式資料集進行cache,將計算結果快取在記憶體中,這樣會比快取在磁碟中更快的讀取。比如計算log檔案的行數 s...

linux記憶體中buffer和 cached的比較

經常遇到一些剛接觸linux的新手會問記憶體占用怎麼那麼多?在linux中經常發現空閒記憶體很少,似乎所有的記憶體都被系統占用了,表面感覺是記憶體不夠用了,其實不然。這是linux記憶體管理的乙個優秀特性,在這方面,區別於windows的記憶體管理。主要特點是,無論物理記憶體有多大,linux 都將...

linux 記憶體中Buffer和Cache的區別

具體怎麼理解?通過實驗發現,比較寫資料到檔案和寫資料到磁碟 比較從檔案中讀取資料和從磁碟中讀資料 實驗資料參考 簡單理解 buffer 是對磁碟資料的快取,而 cache 是檔案資料的快取。同學 geek 5258f8 的解答 理論上,乙個檔案讀首先到block buffer,然後到page cac...