從頭學習大數據培訓課程 spark 基於內存的分散式計算框架(二)RDD 編程基礎使用

1.常用的轉換

假設rdd的元素是: {1,2,2,3}

應用於pairRdd

假設rdd的元素是:{1, 2, 3},other元素是:{3, 4, 5}

2.常用操作介面

假設rdd的元素是:{1, 2, 3, 3}

3.創建RDD

有兩種方式:讀取外部數據集,以及在驅動器程序中對一個集合進行並行化

parallelize 集合併行化

textFile 本地文件或者HDFS文件

4.map()函數 和 take()函數

map(func)

take(num)

5.count()函數和collect()函數

count()

collect()

6.集合操作

distinct,去重,但其操作的開銷大,因為它需要所有數據通過網路進行混洗

union

intersection

subtract

7.aggregate()函數

aggregate()函數需要我們提供期待返回的類型的初始值,然後通過一個函數把RDD中的元素合併起來放入累加器,考慮到每個節點是在本地累加的,最終,還需要通過第二個函數把累加器兩兩合併

8.top()函數和 foreach()函數

top(num)

9.共享變數

我們傳遞給Spark的函數,如map(),或者filter()的判斷條件函數,能夠利用定義在函數之外的變數,但是集群中的每一個task都會得到變數的一個副本,並且task在對變數進行的更新不會被返回給driver。而Spark的兩種共享變數:累加器(accumulator)和廣播變數(broadcast variable)

累加器

累加器可以很簡便地對各個worker返回給driver的值進行聚合。累加器最常見的用途之一就是對一個job執行期間發生的事件進行計數。

廣播變數

廣播變數通常情況下,當一個RDD的很多操作都需要使用driver中定義的變數時,每次操作,driver都要把變數發送給worker節點一次,如果這個變數中的數據很大的話,會產生很高的傳輸負載,導致執行效率降低。使用廣播變數可以使程序高效地將一個很大的只讀數據發送給多個worker節點,而且對每個worker節點只需要傳輸一次,每次操作時executor可以直接獲取本地保存的數據副本,不需要多次傳輸。

10.wordcount and sort

推薦閱讀:

大數據時代:發掘大數據未知的潛能
大數據背景下的互聯網思維
決定大數據時代的話語權——數據
大數據時代的數據價值與利用
學習大數據的正確打開方式

TAG:大數據 | Spark | 大數據時代 |