Spark RDD 程式設計例項

2021-07-14 03:55:03 字數 734 閱讀 7857

spark 最核心的概念就是rdd:彈性分布式資料集。rdd 是spark 運算元據的一種抽象,本質是分布式資料集合。這種集合被分為多個分割槽,這些分割槽執行在集群的不同節點上。我們在spark的shell 上執行的命令,會在每個分割槽上執行,最後將執行結果彙總起來就得到我們需要的結果。

根據是否需要立即計算,我們把rdd操作分為兩種:轉換操作和行動操作。

轉換操作的rdd命令,並不會立即進行計算,而是在我們的操作鏈中遇到行動操作才一起進行計算。因此這種實現叫做惰性求值。所有的轉換操作都是惰性求值的。

行動操作是立即計算結果。並且也會將操作鏈上之前所有的轉換操作一起計算。

另外需要說明的是,rdd是不可以改表的,每一次操作,系統都會新建立乙個rdd出來。

一般使用乙個資料來源來進行建立初始的rdd,資料來源有兩種,第乙個是外部磁碟的檔案。第二種是程式中的物件。

磁碟檔案作為源頭:

val source = sc.textfile(「readme.md」)

以程式中的物件作為源頭:

val source = sc.parallelize(list(「hello」,」world」))

以下列舉幾個例項:

其中map()就是典型的轉換操作,map()主要是接收乙個函式,把這個函式用於rdd中每乙個元素。並將函式的計算結果作為結果rdd中對應的元素。

典型的轉換操作還有乙個filter() ,filter()也是接收乙個函式,並將rdd中滿足該函式的元素放入到新的rdd中。

spark RDD程式設計

rdd就是乙個不可變的分布式物件集合。建立rdd 1 讀取乙個外部資料集 sparkcontext.textfile 2 在驅動器程式中對乙個集合進行並行化。rdd 操 作 1 轉 化 操 作 transformation 會由乙個 rdd 生成乙個新的 rdd。2 行 動 操 作 action 會...

Spark RDD程式設計基礎

從檔案建立rdd lines sc.textfile 篩選出含某個單詞的行 lines.filter lambda 引數 條件表示式 生成單詞的列表 從列表建立rdd words sc.parallelize 篩選出長度大於10 的單詞 words.filter 從檔案建立rdd lines sc....

Spark RDD程式設計(2) 雙Value型別互動

所謂雙value,就是兩個資料集rdd之間進行操作。1 union otherdataset 對源rdd和引數 rdd合併後返回乙個新的 rdd,不會去重 val listrdd1 rdd int sc.makerdd 1 to 5 val listrdd2 rdd int sc.makerdd 5...