Spark操作 控制操作

2021-10-06 10:01:10 字數 1427 閱讀 7477

cache和persist操作都是對rdd進行持久化,其中cache是persist採用memory_only儲存級別時的乙個特例,

scala> var rdd = sc.textfile("/users/lyf/desktop/data.txt")

scala> rdd.cache()

// 第一次計算行數,這裡只能從本地檔案讀取資料,不能從記憶體

scala> rdd.count()

res39: long = 4

// 第二次計算,則是從記憶體中讀取資料

scala> rdd.count()

res40: long = 4

scala> var rdd = sc.textfile("/users/lyf/desktop/data.txt")

scala> rdd.persist()

scala> rdd.count()

res42: long = 4

scala> rdd.count()

res43: long = 4

storagelevel有以下幾種

級別使用空間cpu時間是否在記憶體是否在磁碟備註

memory_only高低

是否資料只放在記憶體中

memory_only_2高低

是否持久化2份資料

memory_only_ser低高

是否資料序列化後存人記憶體

memory_only_ser_2低高

是否持久化2份資料

memory_and_disk高中

部分部分

如果資料在記憶體中放不下,則溢寫到磁碟

memory_and_disk_2高中

部分部分

持久化2份資料

memory_and_disk_ser低高

部分部分

如果資料在記憶體中放不下,則溢寫到磁碟。記憶體中存放序列化後的資料

memory_and_disk_ser_2低高

部分部分

持久化2份資料

disk_only低高

否是資料只存入磁碟

disk_only_2低高

否是持久化2份資料

與persist相反,該操作可以手動將持久化的資料從快取中移除

scala> var rdd = sc.textfile("/users/lyf/desktop/data.txt")

scala> rdd.persist()

scala> rdd.unpersist()

參考:

[1] 郭景瞻. **spark:核心技術與案例實戰[m]. 北京:電子工業出版社, 2017.

Spark操作 轉換操作 一

基礎轉換操作 鍵值轉換操作 對rdd中的每個元素都應用乙個指定的函式,以此產生乙個新的rdd scala var rdd sc.textfile users lyf desktop test data1.txt scala rdd.map line line.split collect res16 ...

Spark操作 行動操作 一

scala var rdd sc.makerdd array a 1 a 2 a 3 b 4 b 5 c 6 c 7 c 8 c 9 d 10 rdd org.apache.spark.rdd.rdd string,int parallelcollectionrdd 60 at makerdd at...

spark 常用操作

該文章記錄使用的spark的基本操作 import breeze.numerics.pow import org.apache.spark.sparkconf import org.apache.spark.sql.sparksession object template val dot udf u...