Spark(六) RDD快取機制

2021-10-03 19:30:57 字數 837 閱讀 2555

舉例:

scala> var rdd1 = sc.

textfile

("hdfs://bigdata111:8020/tmp_files/test_cache.txt"

)rdd1: org.apache.spark.rdd.rdd[string]

= hdfs:

//bigdata111:

8020

1] at textfile at :24

// 沒有快取,直接計算

scala> rdd1.count

res0: long =

923452

// 標識rdd可以被快取,不會觸發計算,因為cache是乙個transformation

scala> rdd1.cache

res1: org.apache.spark.rdd.rdd[string]

= hdfs:

//bigdata111:

8020

1] at textfile at :24

// 觸發計算,並把計算結果快取。這次會慢一些

scala> rdd1.count

res2: long =

923452

// 直接從快取中讀取資料,快了。

scala> rdd1.count

res3: long =

923452

// 直接從快取中讀取資料

scala> rdd1.count

res4: long =

923452

Spark 六 RDD的血緣依賴

1.rdd血緣關係 rdd只支援粗粒度轉換,即在大量記錄上執行的單個操作。將建立rdd的一系列lineage 血統 記錄下來,以便恢復丟失的分割槽。rdd的lineage會記錄rdd的元資料資訊和轉換行為,當該rdd的部分分割槽資料丟失時,它可以根據這些資訊來重新運算和恢復丟失的資料分割槽。檢視rd...

大資料學習筆記(六) Spark的RDD

建立 rdd是spark中的資料集,是唯讀的 rdd可以從集合,普通檔案系統,hdfs檔案系統中建立 scala建立rdd的方法 val lines1 sc.parallelize list aa bb val lines2 sc.textfile file opt spark readme.md ...

Spark入門RDD操作

rdd resilient distributed datasets 彈性分布式資料集,是spark中的抽象資料結構型別,任何資料在spark中都被表示為rdd.從程式設計的角度來看,rdd可以簡單看成是乙個陣列.和普通陣列的區別是,rdd中的資料是分割槽儲存的,這樣不同分割槽的資料就可以分布在不同...