1. 程式人生 > 其它 >spark中的轉換運算元和行動運算元(transformations and actions)

spark中的轉換運算元和行動運算元(transformations and actions)

首先,我們看一眼官方文件對運算元的描述

運算元(RDD Operations):

對於初學者來說,運算元的概念比較抽象,運算元可以直譯為 "RDD的操作", 我們把它理解為RDD的方法即可 。

轉換運算元(transformations):

轉換運算元會從一個已經存在的資料集(RDD)中生成一個新的資料集(RDD),比如map就是一個轉換運算元,它通過對映關係從一個RDD生成了一個新的RDD。

行動運算元(actions):

行動運算元在進行資料集計算後會給driver程式返回一個值。

轉換運算元和行動運算元最大的區別:

轉換運算元返回一個數據集而行動運算元返回一個具體值,如reduce運算元是行動運算元 而 reducebykey是轉換運算元;

同時由於spark的惰性求值特性,所有的轉換運算元是不會立即計算結果的,轉換運算元只記錄它應用的資料集,在行動運算元需要給drive返回資料時轉換運算元才會去計算結果。(這個設計能讓spark執行效率更高)