初識大數據(十)-----RDDs特性

1、RDDs的血統關係圖
Sprak維護着RDDs之間的依賴關係和創建關係,叫做血統關係圖.
Spark使用血統關係圖來計算每個RDD的需求和恢復丟失的數據.
在這裏插入圖片描述
2、延遲計算

Spark對RDDs的計算是他們第一次使用action操作的時候.

這種數據在處理大數據的時候特別有用,可以減少數據的傳輸.

Spark內部記錄metadata表名transformations操作已經被響應了.

加載數據也是延遲計算,數據只有在必要的時候,纔會被加載進去.

3、RDD.persist()

默認每次在RDDs上面進行actions操作時,Spark都重新計算RDDs.

如果想重複利用RDD,可以使用RDD.persist()

unpersist方法從緩存中移除
在這裏插入圖片描述
在這裏插入圖片描述
2、KeyValue對RDDs

2.1創建KeyValue對RDDs

使用map()函數,返回Key/Value對.例如:包含數行數據的RDD,把每行數據的第一個單詞作爲keys.
在這裏插入圖片描述
在這裏插入圖片描述
2.2 KeyValue對RDDs的操作
2.2.1 reduceByKey
在這裏插入圖片描述
2.2.2 groupByKey()
在這裏插入圖片描述
2.2.3
在這裏插入圖片描述
2.2.4 RDDs的keys和values
在這裏插入圖片描述
2.2.5 sortByKey
在這裏插入圖片描述
2.2.6 combineByKey

最常用的基於Key的聚合函數,返回的類型可以與輸入類型不一致,許多基於Key的聚合函數都用到了它,像GroupByKey()

遍歷partition中的元素,元素的key,要麼之前見過的,要麼不是.

如果是新元素,使用我們提供的creatCombiner()函數

如果是這個partition中已經存在的key,就會使用mergeValue()函數

合計每個partition結果的時候,使用mergeCombiners()函數

例子:求平均值
在這裏插入圖片描述
掃下面的二維碼,加關注,下次查找更容易
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章