舉例:
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中的資料是分割槽儲存的,這樣不同分割槽的資料就可以分布在不同...