您好,登錄后才能下訂單哦!
這篇文章主要介紹Spark在運(yùn)行轉(zhuǎn)換中如何通過算子對(duì)RDD進(jìn)行轉(zhuǎn)換,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!
算子運(yùn)行過程
下圖描述了Spark在運(yùn)行轉(zhuǎn)換中通過算子對(duì)RDD進(jìn)行轉(zhuǎn)換。 算子是RDD中定義的函數(shù),可以對(duì)RDD中的數(shù)據(jù)進(jìn)行轉(zhuǎn)換和操作。
1、輸入:在Spark程序運(yùn)行中,數(shù)據(jù)從外部數(shù)據(jù)空間(如分布式存儲(chǔ):textFile讀取HDFS等,parallelize方法輸入Scala集合或數(shù)據(jù))輸入Spark,數(shù)據(jù)進(jìn)入Spark運(yùn)行時(shí)數(shù)據(jù)空間,轉(zhuǎn)化為Spark中的數(shù)據(jù)塊,通過BlockManager進(jìn)行管理。
2、運(yùn)行:在Spark數(shù)據(jù)輸入形成RDD后便可以通過變換算子,如filter等,對(duì)數(shù)據(jù)進(jìn)行操作并將RDD轉(zhuǎn)化為新的RDD,通過Action算子,觸發(fā)Spark提交作業(yè)。 如果數(shù)據(jù)需要復(fù)用,可以通過Cache算子,將數(shù)據(jù)緩存到內(nèi)存。
3、輸出:程序運(yùn)行結(jié)束數(shù)據(jù)會(huì)輸出Spark運(yùn)行時(shí)空間,存儲(chǔ)到分布式存儲(chǔ)中(如saveAsTextFile輸出到HDFS),或Scala數(shù)據(jù)或集合中(collect輸出到Scala集合,count返回Scala int型數(shù)據(jù))。
算子分類
大致可以分為三大類算子:
1、Value數(shù)據(jù)類型的Transformation算子,這種變換并不觸發(fā)提交作業(yè),針對(duì)處理的數(shù)據(jù)項(xiàng)是Value型的數(shù)據(jù)。
2、Key-Value數(shù)據(jù)類型的Transfromation算子,這種變換并不觸發(fā)提交作業(yè),針對(duì)處理的數(shù)據(jù)項(xiàng)是Key-Value型的數(shù)據(jù)對(duì)。
3、Action算子,這類算子會(huì)觸發(fā)SparkContext提交Job作業(yè)。
以上是“Spark在運(yùn)行轉(zhuǎn)換中如何通過算子對(duì)RDD進(jìn)行轉(zhuǎn)換”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。