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的意義同矩陣資料型別。例...