在閱讀很多的spark簡介中,都及多的提到rdds這個名詞。官方文件指出:spark 核心的概念是 resilient distributed dataset (rdd):乙個可並行操作的有容錯機制的資料集合。這句話說明rdd的本質是集合,這個集合帶有並行操作和容錯機制。
官方文件指出有兩種方式建立rdd,一種是在你的驅動程式中並行化乙個已經存在的集合。這句話說明,我們要在我們的程式中將乙個集合並行化。集合的概念很寬泛,集合可以是浮點數的集合也可以是整數的集合,也可以是類的集合。這裡我們先把集合初步理解為數值的集合。在c語言中,數值的集合我很容易知道就是陣列。那麼如何是並行化?
並行集合 (parallelized collections) 的建立是通過在乙個已有的集合(scala seq )上呼叫 sparkcontext 的 parallelize 方法實現的。集合中的元素被複製到乙個可並行操作的分布式資料集中。 [ spark程式設計指南 ]例如:
val data = array(1, 2, 3, 4, 5)
val distdata = sc.parallelize(data)
一旦建立完成,這個分布式資料集( distdata )就可以被並行操作。例如,我們可以呼叫 distdata.reduce((a, b) => a + b)將這個陣列中的元素相加。我們以後再描述在分布式上的一些操作。
為什麼說將陣列相加是分布式操作,因為我們知道在c語言中,對元素的運算是逐步運算的,一般是取出某個元素,然後再取出乙個元素,然後對兩個元素求和,最後在賦值回去,spark的運算是並行的,取出元素可以認為是同時取然後算儲存回去。c語言只能同時計算val data 中的1+2,但是spark可以做到在計算1+2同時計算3+4且同時計算4+5,這個就是spark的平行計算特性。
spark分布式的相關學習筆記
driver完成所有任務的排程和executor與cluster之間的協調。分為client和cluster模式。client模式是指driver在任務提交的機器上執行,cluster模式是指隨機選擇一台機器執行。job是指指令碼中的action,乙個action對應了乙個job transform...
分布式系統 Spark
特點 粗粒度的變換。如 map,filter,join 行為 需要得出結果時呼叫 5部分操作意義 資料分割槽集 partitions partition是資料集的最小單位,即乙個shard 位置preferredlocations 輸入partition,輸出是該資料所在的位置 此分割槽在哪台機器上...
spark分布式執行xgboost
coding utf 8 import os os.environ pyspark submit args jars data pycharm zhanglong pysparkxgboostnew xgboost4j spark 0.90.jar,data pycharm zhanglong py...