Scala當(dāng)中什么是Transformation和 Action,以及它們倆的區(qū)別是什么?

馬克-to-win @ 馬克java社區(qū):一個(gè)完整的RDD任務(wù)由兩部分組成:Transformation和 Action。Transformation用于對(duì)RDD的創(chuàng)建,還可以把老的RDD通過(guò)Transformation來(lái)生成新的RDD。例如,map就 是一種transformation操作,它用于將已有RDD的每個(gè)元素傳入一個(gè)自定義的函數(shù),并得到一個(gè)新的元素,然后將所有的新元素組成一個(gè)新的 RDD。但RDD一大特性是延遲(lazy)計(jì)算,即縱使你執(zhí)行這些Transformation操作,這些操作也不會(huì)執(zhí)行。換句話說(shuō), transformation操作不會(huì)觸發(fā)spark程序執(zhí)行的,它們只是先記錄了對(duì)RDD所做的一系列操作,只有之后碰上一個(gè)action操作,那么前 面所有的transformation才會(huì)執(zhí)行。collect和reduce就是action操作。馬克- to-win:馬克 java社區(qū):防盜版實(shí)名手機(jī)尾號(hào): 73203。