Spark RDD的缓存
生活随笔
收集整理的這篇文章主要介紹了
Spark RDD的缓存
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
?
Spark速度非常快的原因之一,就是在不同操作中可以在內存中持久化或者緩存數據集。當持久化某個RDD后,每一個節點都將把計算分區結果保存在內存中,對此RDD或衍生出的RDD進行的其他動作中重用。這使得后續的動作變得更加迅速。RDD相關的持久化和緩存,是Spark最重要的特征之一。可以說,緩存是Spark構建迭代式算法和快速交互式查詢的關鍵。
1. RDD緩存方式
RDD通過persist方法或cache方法可以將前面的計算結果緩存,但是并不是這兩個方法被調用時立即緩存,而是觸發后面的action時,該RDD將會被緩存在計算節點的內存中,并供后面重用。
通過查看源碼發現cache最終也是調用了persist方法,默認的存儲級別都是僅在內存存儲一份,Spark的存儲級別還有好多種,存儲級別在object StorageLevel中定義的。
緩存有可能丟失,或者存儲于內存的數據由于內存不足而被刪除,RDD的緩存容錯機制保證了即使緩存丟失也能保證計算的正確執行。通過基于RDD的一系列轉換,丟失的數據會被重算,由于RDD的各個Partition是相對獨立的,因此只需要計算丟失的部分即可,并不需要重算全部Partition。
總結
以上是生活随笔為你收集整理的Spark RDD的缓存的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Spark 运行机制
- 下一篇: Spark DStream相关操作