RDD程式設計

2021-08-21 18:07:33 字數 1312 閱讀 6832

1.rdd程式設計概述—-整個spark的核心

2.pari rdd

3.共享變數【重要】

4.資料讀寫

5.wordcount程式解析

1.rdd程式設計概述

1.rdd建立,

01.spark採用textfile()方法從檔案系統中載入資料建立rdd

該方法把檔案的uri作為引數,這個uri可以是:

001.本檔案系統的位址;

002.或者是分布式檔案系統hdfs的位址

003.或者是amazon s3的位址

val lines = sc.textfile(「file:///usr/local/spark/mycode/wordcount/word.txt」)

這裡的lines就是乙個rdd,並且rdd中的元素是string型別

02.可通過sparkcontext的parallelize()方法,在driver中已經存在的集合上建立

val arr = array(1,2,3,4,5)

val rdd = sc.parallelize(arr)

rdd中的每個元素都是int型別

或者也可以通過列表建立

2.rdd操作

01轉換操作

02行動操作

觸發計算

常見如下:

count()

collect()

first()

take(n)

reduce(func)

foreach(func)

03惰性機制

持久化,(解決重複計算的問題)

標記為持久化

1.可以使用persist()方法對乙個rdd標記為持久化

2,持久化後的rdd將會被保留在計算節點的記憶體中被後面的行動操作繼續使用

3,persist(memory_only)

persist(memory_and_disk)

cache()

unpersist()

3.分割槽

增加並行度:rdd通常很大,會被分成很多個分割槽。

減少通訊開銷

手動設定分割槽

01,建立rdd時:呼叫textfile和parallelize方法時手動指定分割槽數:sc.textfile(path,partitionnum)

02,通過轉換操作得到新的rdd時,直接呼叫repartition方法即可

這種情況常常用在計算進行了大半部分的時候,因為之前很多資料集都已經計算完全,所有不再需要很多的執行緒來計算,所以減少分割槽的數量很有必要。

RDD程式設計練習

一 filter,map,flatmap練習 1.讀文字檔案生成rdd lines 2.將一行一行的文字分割成單詞 words 3.全部轉換為小寫 4.去掉長度小於3的單詞 5.去掉停用詞 二 groupbykey練習 6.練習一的生成單詞鍵值對 7.對單詞進行分組 8.檢視分組結果 學生科目成績檔...

Spark程式設計模型 RDD

spark程式設計模型是彈性分布式資料集 resilient distributed dataset,rdd 是mapreduce模型的擴充套件和延伸 基於rdd機制實現了多類模型計算,如 1.迭代計算 2.互動式sql查詢 3.mapreduce rdd 4.流式資料處理。markdown 是一種...

spark學習 RDD程式設計

rdd建立 從從檔案系統中載入資料建立rdd 1.spark採用textfile 從檔案系統中載入資料建立rdd 可以使本地,分布式系統等 2.把檔案的url作為引數 可以是本地檔案系統的位址,分布式檔案系統hdfs的位址等等 從本地檔案中載入資料 sc為系統自動建立的sparkcontext,不用...