1. 程式人生 > >學習大資料課程 spark 基於記憶體的分散式計算框架(二)RDD 程式設計基礎使用

學習大資料課程 spark 基於記憶體的分散式計算框架(二)RDD 程式設計基礎使用

學習大資料課程 spark 基於記憶體的分散式計算框架(二)RDD 程式設計基礎使用

 

1.常用的轉換

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

 

很多初學者,對大資料的概念都是模糊不清的,大資料是什麼,能做什麼,學的時候,該按照什麼線路去學習,學完往哪方面發展,想深入瞭解,想學習的同學歡迎加入大資料學習qq群:199427210,有大量乾貨(零基礎以及進階的經典實戰)分享給大家,並且有清華大學畢業的資深大資料講師給大家免費授課,給大家分享目前國內最完整的大資料高階實戰實用學習流程體系

應用於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

 

 

 

加油加油加油