1. 程式人生 > >大資料學習之路80-RDD的儲存級別

大資料學習之路80-RDD的儲存級別

前面我們說過如果我們想提高spark RDD的執行效率的話,我們可以將常用的RDD cache到記憶體中這樣我們用的話就可以直接拿,執行的效率也會快很多,當然這個cache如果不釋放就會一直佔用記憶體的空間。

兩次執行rdd2.count的速度明顯不一樣,第二次的速度會更快

第一次用了3秒,第二次僅用了0.2秒,這都是快取的功勞

這就是我們的快取,佔用了352B的空間,如果不釋放的話就會一直存在。

我們可以通過unpersist(true)來釋放快取

執行之後快取已經消失

現在我們有一個問題,如果資料量非常大,他還會幫我們都快取起來嗎?如果快取不下來怎麼辦?

如果資料量過大,記憶體中放不下的話,就會在記憶體中放一部分,磁碟中放一部分。

cache呼叫的是persist方法。我們可以檢視原始碼:

接下來我們呼叫一下persist:

要呼叫話還需要導包:

快取結果: