Spark快取級別

2021-10-04 14:35:25 字數 1429 閱讀 6776

惰性求值

--------------------------------

1.定義:

在rdd行動操作之前,不觸發計算。轉換操作和建立操作、控制操作均為惰性的;

只有行動操作可觸發job。

快取cache

-----------------------------------

1.spark的快取級別參照【org.apache.spark.storage.storagelevel.scala】

new storagelevel(_usedisk,_usememory, _useoffheap,_deserialized,_replication: int = 1)

val none = new storagelevel(false, false, false, false)

val disk_only = new storagelevel(true, false, false, false)

val disk_only_2 = new storagelevel(true, false, false, false, 2)

val memory_only = new storagelevel(false, true, false, true)

val memory_only_2 = new storagelevel(false, true, false, true, 2)

val memory_only_ser = new storagelevel(false, true, false, false)

val memory_only_ser_2 = new storagelevel(false, true, false, false, 2)

val memory_and_disk = new storagelevel(true, true, false, true)

val memory_and_disk_2 = new storagelevel(true, true, false, true, 2)

val memory_and_disk_ser = new storagelevel(true, true, false, false)

val memory_and_disk_ser_2 = new storagelevel(true, true, false, false, 2)

val off_heap = new storagelevel(true, true, true, false, 1)

預設快取級別:def persist(): this.type = persist(storagelevel.memory_only),

預設情況下persist() 會把資料以反序列化的形式快取在jvm的堆空間中。

取消快取,執行rdd.unpersist()

設定rdd的快取級別,執行rdd.persist(storagelevel.memory_and_disk)

Spark快取級別

spark快取級別 在spark中,如果乙個rdd或者dataset被多次復用,最好是對此做快取操作,以避免程式多次進行重複的計算。spark 的快取具有容錯機制,如果乙個快取的 rdd 的某個分割槽丟失了,spark 將按照原來的計算過程,自動重新計算並進行快取。快取的使用 val dataset...

Spark日誌級別修改

在學習使用spark的過程中,總是想對內部執行過程作深入的了解,其中debug和trace級別的日誌可以為我們提供詳細和有用的資訊,那麼如何進行合理設定呢,不複雜但也絕不是將乙個info換為trace那麼簡單。調整spark日誌級別的配置檔案是 spark home conf log4j.prope...

spark持久化(快取)

1 惰性求值 rdd轉化過程都是惰性求值的。這意味著在被呼叫行動操作之前spark不會開始計算,spark會在內部記錄下所要求執行的操作的相關資訊,我們可以把每個rdd看作我們通過轉化操作構建出來的 記錄如何計算資料的指定列表。把資料讀取到rdd的操作同樣是惰性的。2 持久化快取 sparkrdd是...