在spark中最重要的功能之一是跨操作在記憶體中持久化資料集。當你持久化乙個rdd的時候,每個節點都存放了乙個它在記憶體中計算的乙個分割槽,並在該資料集的其他操作中進行重用,持久化乙個rdd的時候,節點上的每個分割槽都會儲存到記憶體中,這使得將來的action更加的快。
快取技術是迭代演算法和互動式查詢的重要工具
可以使用persist()和cache()方法進行rdd的持久化,persist()是持久化到磁碟,而cache()是快取到記憶體
action第一次計算的時候才會發生persist()
spark的 cache是容錯的,如果rdd的任何乙個分割槽丟失了,都可以通過rdd最初的變化來找回
persist可以使用不同的儲存級別來進行持久化
memory_only //只存放到記憶體
memory_and_disk //存放到硬碟和記憶體
disk_only //只存放到磁碟
memory_and_disk //記憶體和磁碟
memory_only_ser //記憶體儲存(可以序列化)
memory_only_2 //帶有副本
memory_and_disk_2 //快速容錯
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...
6 RDD綜合練習 更豐富的操作
集合運算練習 內連線與外連線 join leftouterjoin rightouterjoin fullouterjoin 多個考勤檔案,簽到日期彙總,出勤次數統計 三 綜合練習 學生課程分數 總共有多少學生?map distinct count 開設了多少門課程?每個學生選修了多少門課?map ...