RDD的轉換運算元(Value型別)

2021-10-09 08:05:54 字數 1145 閱讀 2558

value型別:

map():每次處理一條資料。

作用:將每乙個分割槽形成乙個陣列,形成新的rdd型別時rdd[array[t]]

需求:建立乙個4個分割槽的rdd,並將每個分割槽的資料放到乙個陣列

作用:分組,按照傳入函式的返回值進行分組。將相同的key對應的值放入乙個迭代器。

需求:建立乙個rdd,按照元素模以2的值進行分組。

作用:過濾。返回乙個新的rdd,該rdd由經過func函式計算後返回值為true的輸入元素組成。

需求:建立乙個rdd(由字串組成),過濾出乙個新rdd(包含」xiao」子串)

作用:以指定的隨機種子隨機抽樣出數量為fraction的資料,withreplacement表示是抽出的資料是否放回,true為有放回的抽樣,false為無放回的抽樣,seed用於指定隨機數生成器種子。

需求:建立乙個rdd(1-10),從中選擇放回和不放回抽樣

作用:對源rdd進行去重後返回乙個新的rdd。預設情況下,只有8個並行任務來操作,但是可以傳入乙個可選的numtasks引數改變它。

需求:建立乙個rdd,使用distinct()對其去重。

作用:縮減分割槽數,用於大資料集過濾後,提高小資料集的執行效率。

需求:建立乙個4個分割槽的rdd,對其縮減分割槽

作用:根據分割槽數,重新通過網路隨機洗牌所有資料。

需求:建立乙個4個分割槽的rdd,對其重新分割槽

coalesce和repartition的區別

coalesce重新分割槽,可以選擇是否進行shuffle過程。由引數shuffle: boolean = false/true決定。

repartition實際上是呼叫的coalesce,預設是進行shuffle的。原始碼如下:

def repartition(numpartitions: int)(implicit ord: ordering[t] = null): rdd[t] = withscope
作用;使用func先對資料進行處理,按照處理後的資料比較結果排序,預設為正序。

需求:建立乙個rdd,按照不同的規則進行排序

作用:管道,針對每個分割槽,都執行乙個shell指令碼,返回輸出的rdd。

注意:指令碼需要放在worker節點可以訪問到的位置

RDD轉換運算元 單值value

sparks運算元總結 lvalue型別 1 map def map u classtag f t u rdd u 單值處理邏輯 將處理的資料逐條進行對映轉換,這裡的轉換可以是型別的轉換,也可以是值的轉換。val datardd rdd int sparkcontext.makerdd list 1...

RDD轉換運算元和行動運算元的區別

textfile 既不是transformation 也不是 action 它是為生成rdd前做準備 運算元 指的就是rdd上的方法。spark中的運算元分為2類 1 轉換運算元 transformation 由rrd 呼叫方法 返回乙個新的rdd 一直存在drive中因為沒生成task 特點 生成...

RDD運算元怎麼區分轉換運算元和行動運算元

textfile 既不是transformation 也不是 action 它是為生成rdd前做準備 運算元 指的就是rdd上的方法。spark中的運算元分為2類 1 轉換運算元 transformation 由rrd 呼叫方法 返回乙個新的rdd 一直存在drive中因為沒生成task 特點 生成...