Spark中的算子都有哪些
Spark中的算子都有哪些
總的來說,spark分為三大類算子:
Transformation 變換/轉(zhuǎn)換算子:這種變換并不觸發(fā)提交作業(yè),完成作業(yè)中間過程處理; Transformation 操作是延遲計(jì)算的,也就是說從一個(gè)RDD 轉(zhuǎn)換生成另一個(gè) RDD 的轉(zhuǎn)換操作不是馬上執(zhí)行,需要等到有 Action 操作的時(shí)候才會(huì)真正觸發(fā)運(yùn)算
Action 行動(dòng)算子:這類算子會(huì)觸發(fā) SparkContext 提交 Job 作業(yè); Action 算子會(huì)觸發(fā) Spark 提交作業(yè)(Job),并將數(shù)據(jù)輸出 Spark系統(tǒng)
controller 控制操作:Spark中控制算子也是懶執(zhí)行的,需要Action算子觸發(fā)才能執(zhí)行,主要是為了對(duì)數(shù)據(jù)進(jìn)行緩存。
控制算子有三種,cache,persist,(RDD 持久化原理)checkpoint,以上算子都可以將RDD持久化,持久化的單位是partition。cache和persist都是懶執(zhí)行的。必須有一個(gè)action類算子觸發(fā)執(zhí)行。checkpoint算子不僅能將RDD持久化到磁盤,還能切斷RDD之間的依賴關(guān)系。
輸入分區(qū)與輸出分區(qū)一對(duì)一型
map算子
flatMap算子
mapPartitions算子
glom算子
輸入分區(qū)與輸出分區(qū)多對(duì)一型
union算子
cartesian算子
輸入分區(qū)與輸出分區(qū)多對(duì)多型
grouBy算子
輸出分區(qū)為輸入分區(qū)子集型
filter算子
distinct算子
subtract算子
sample算子
takeSample算子
Cache型
cache算子
persist算子
輸入分區(qū)與輸出分區(qū)一對(duì)一
mapValues算子
對(duì)單個(gè)RDD或兩個(gè)RDD聚集
combineByKey算子
reduceByKey算子
partitionBy算子
Cogroup算子
連接
join算子
leftOutJoin 和 rightOutJoin算子
無輸出
foreach算子
HDFS算子
saveAsTextFile算子
saveAsObjectFile算子
Scala集合和數(shù)據(jù)類型
collect算子
collectAsMap算子
reduceByKeyLocally算子
lookup算子
count算子
top算子
reduce算子
fold算子
aggregate算子
countByValue
countByKey
spark
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。