spark RDD 算子運行過程及分類

算子運行過程緩存

下圖描述了Spark在運行轉換中經過算子對RDD進行轉換。 算子是RDD中定義的函數,能夠對RDD中的數據進行轉換和操做。分佈式

一、輸入:在Spark程序運行中,數據從外部數據空間(如分佈式存儲:textFile讀取HDFS等,parallelize方法輸入Scala集合或數據)輸入Spark,數據進入Spark運行時數據空間,轉化爲Spark中的數據塊,經過BlockManager進行管理。
二、運行:在Spark數據輸入造成RDD後即可以經過變換算子,如filter等,對數據進行操做並將RDD轉化爲新的RDD,經過Action算子,觸發Spark提交做業。 若是數據須要複用,能夠經過Cache算子,將數據緩存到內存。
三、輸出:程序運行結束數據會輸出Spark運行時空間,存儲到分佈式存儲中(如saveAsTextFile輸出到HDFS),或Scala數據或集合中(collect輸出到Scala集合,count返回Scala int型數據)。函數

算子分類spa

大體能夠分爲三大類算子:
一、Value數據類型的Transformation算子,這種變換並不觸發提交做業,針對處理的數據項是Value型的數據。
二、Key-Value數據類型的Transfromation算子,這種變換並不觸發提交做業,針對處理的數據項是Key-Value型的數據對。
三、Action算子,這類算子會觸發SparkContext提交Job做業。orm

相關文章
相關標籤/搜索