惰性求值
--------------------------------
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是...