spark 常用函式總結

2021-08-01 23:37:04 字數 1637 閱讀 7289

1, textfile()  讀取外部資料來源

2, map() 對每一條資料進行相應的處理 如切分

3, reducebykey(_+_) 傳入乙個函式,將key相同的一類進行聚合計算 如相加

4, mapvalues(_+10) 傳入乙個函式,類似於map方法,不過這裡只是對元組中的value進行計算

5,filter() 傳入乙個函式, 使用者過濾處理資料 

6,sortby() 傳入對哪個字段進行排序 對資料進行排序

7,partitionby() 傳入乙個自定義的分割槽類,可進行資料的分割槽,

9,reverse 將排序好的資料進行反轉

10,it.tolist 將iterator轉換為list 然後就可以使用list的sortby()函式進行排序

11,.iterator  it.tolist.sortby(_._2._2).reverse.take(2).iterator  將資料轉換為iterator

12,aggregate()()第乙個引數需要傳入乙個初始值,第二個引數需要傳入兩個函式[每個函式都是2個引數(第乙個引數:先對每個分割槽進行合併, 第二個:對個個分割槽合併後的結果再進行合併), 輸出乙個引數]

val rdd1 = sc.parallelize(list(1,2,3,4,5,6,7,8,9), 2)

rdd1.aggregate(0)(_+_, _+_) 求和

rdd1.aggregate(0)(math.max(_, _), _ + _) 先取出每個分割槽的最大值,再求和

val rdd2 = sc.parallelize(list("a","b","c","d","e","f"),2)

rdd2.aggregate("=")(_ + _, _ + _)

結果:==def=abc

13,groupby() 對指定字段進行分組

14,foreachpartition()對分區內的每個元素進行操作,

val rdd1 = sc.parallelize(list(1, 2, 3, 4, 5, 6, 7, 8, 9), 3)

rdd1.foreachpartition(x => println(x.reduce(_ + _)))

可以用如下代替

val rdd1 = sc.parallelize(list(2, 1, 3, 5, 4, 6, 7, 8, 9), 3)

var result = list[int]()

result.::(x.tolist.sum).iterator

})15, keys values

val rdd1 = sc.parallelize(list("dog", "tiger", "lion", "cat", "panther", "eagle"), 2)

val rdd2 = rdd1.map(x => (x.length, x))

rdd2.keys.collect

rdd2.values.collect

16,filterbyrange

val rdd1 = sc.parallelize(list(("e", 5), ("c", 3), ("d", 4), ("c", 2), ("a", 1)))

val rdd2 = rdd1.filterbyrange("b", "d")

rdd2.collect

spark小記 32個常用運算元總結

過濾操作,滿足filter內function函式為true的rdd內所有元素組成乙個新的資料集。如 filter a 1 map是對rdd中元素逐一進行函式操作對映為另外乙個rdd,而flatmap操作是將函式應用於rdd之中的每乙個元素,將返回的迭代器的所有內容構成新的rdd。而flatmap操作...

常用函式總結

includeunsigned long int htonl unsigned long int hostlong unsigned short int htons unsigned short int hostshort unsigned long int ntohl unsigned long ...

常用函式總結

isset 檢查變數是否設定 unset 銷毀變數 var dump 列印變數的詳細資訊 echo 輸出乙個或多個字串 print 輸出字串 printf 輸出格式化字串 sprintf return a formatted string print r 列印關於變數的易於解釋的資訊 d efine...