sparkcore 學習教程1

2021-09-28 07:30:55 字數 1771 閱讀 3656

1.什麼是rdd?

什麼是rdd?

rdd(resilient distributed dataset)叫做彈性分布式資料集,是spark中最基本的資料抽象,它代表乙個不可變、可分割槽、彈性。rdd是乙個可以並行操作的容錯的容錯集合集合。

1.不可以變是指的是對rdd進行運算元計算,會生成乙個新的rdd,不會改變原來最初的rdd.

2.資料可以分割槽處理

3.把資料進行分割槽,把資料分割槽完了之後可以分別發給exector進行執行。實現並行。

rdd的屬性(原始碼中的一段話)

1.一組分片(partition),對於rdd來說,每個分片都會被乙個計算任務處理。使用者沒有指定分片數按找cpu的core數目來指定。

2.乙個計算每個分割槽的函式。spark中rdd的計算是以分片為單位的。

3.rdd之間的依賴關係。rdd的每次轉換都會生成乙個新的rdd,所以rdd之間就會形成類似於流水線一樣的前後依賴關係。資料丟失也不要重複計算。(血統linear)

4.乙個partitioner,即rdd的分片函式。當前spark中實現了兩種型別的分片函式,乙個是基於雜湊的hashpartitioner,另外乙個是基於範圍的rangepartitioner。

5.乙個列表,儲存訪問每個partition的優先位置(preferred location)移動計算。

rdd的特點?

rdd表示唯讀的分割槽資料集,對rdd改動,只能通過轉換操作,rdds之間存在依賴,這種依賴是稱為血緣,如果血緣比較長,可以通過持久化rdd來切斷血緣關係。

運算元?就是從乙個狀態轉換到另外乙個狀態,spark中所有rdd方法稱為運算元,分為兩大類:轉換運算元和行動運算元。

依賴?rdds的轉換關係形成依賴關係,依賴關係分為兩種,一種是寬依賴,一種是窄依賴。

窄依賴是指每個父rdd的partition最多被子rdd的乙個partition所使用,例如map、filter,見上左圖

寬依賴是指乙個父rdd的partition會被多個子rdd的partition所使用,例如groupbykey、reducebykey等

rdd快取?

把資料快取下來進行儲存。快取每個rdd

rdd的建立?

11.通過外部的資料檔案建立,如hdfs

val rdd1 = sc.textfile(「hdfs:

2.通過sc.parallelize進行建立–並行化,預設分割槽是按照核數。

val rdd1 = sc.parallelize(array(1,2,3,4,5,6,7,8))

val redd2=sc.makerdd(array(1,2,3,4,5,6,6,7,8))

3.從其他集合轉換。

rdd的型別:transformation和action

driver與executor 關係–所有的計算都是在executor執行的

flatmap–把乙個個整體拆成乙個個個體。

每乙個輸入元素可以被對映為0或多個輸出元素(所以func應該返回乙個序列,而不是單一元素)

//1.建立–建立乙個rdd

val listrdd=sc.makerdd(array(list(1,2),list(3,4)))

//2.對rdd的每個元素進行操作

val maprdd=listrdd.flatmap(datas=>datas)

python 3教程 學習(1)

python3 中有六個標準的資料型別 python3 的六個標準資料型別中 數字資料型別 內建的 type 和isinstance 函式可以用來查詢變數所指的物件型別。區別 注意 集合 set 是乙個無序不重複元素的序列。基本功能是進行成員關係測試和刪除重複元素。使用鍵 值 key value 儲...

shell指令碼學習(1) 菜鳥教程

bin bash echo 迴圈輸出演示 declare i sum 0 for i in do echo i let sum i done echo 1 100的和為 sum bin bash 標誌著直譯器的位置,固定寫法 echo 相當於print,列印輸出 declare 宣告,比如decla...

OpenCV基礎教程學習筆記(1)

一 opencv命名規則 1 矩陣資料型別 通用矩陣資料型別為 cv s u f c 其中,s表示帶符號整數 u表示無符號整數 f表示浮點數。例如 cv 8uc1 表示8位無符號單通道矩陣。2 影象資料型別 通用影象資料型別為 ipl depth s u f 其中,s,u,f的意義同矩陣資料型別。例...