91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么進行spark的基本算子使用和源碼解析

發布時間:2021-12-17 14:01:52 來源:億速云 閱讀:131 作者:柒染 欄目:大數據

這篇文章將為大家詳細講解有關怎么進行spark的基本算子使用和源碼解析,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

一.coalesce

1.coalesce源碼

怎么進行spark的基本算子使用和源碼解析
怎么進行spark的基本算子使用和源碼解析

2.coalesce解釋

是窄依賴
由多變少
shuffer默認是false,要注意

3.coalesce應用場景

解決小文件,例如你如果開始有200個文件對應20分區,你極端情況下你過濾變長一個文件,你不能還用200個分區去裝吧
用coalesce解決,主要就是把前面的壓縮一下,但是過濾完后你要用coalesce必須實現做預估

怎么進行spark的基本算子使用和源碼解析

4.上述的極端情況

你如果是xxx.oalesce(1),從源頭就是1,不會像mr可以設置reduce的數量

5.注意事項用coalesce 中RDD的不可變性

下圖說述的分區的大小a.partitions.size  你之前沒有用變量接收coalesce 的值,是不會變得值

怎么進行spark的基本算子使用和源碼解析

6.你傳一個參數要小于默認分區才會生效

怎么進行spark的基本算子使用和源碼解析

7.coalesce設置的參數大于默認的分區數不會生效,前提是一個參數

怎么進行spark的基本算子使用和源碼解析

8.coalesce設置的參數大于默認的分區數生效

怎么進行spark的基本算子使用和源碼解析

9.此問題對應的源碼:

note With shuffle = true, you can actually coalesce to a larger number
一般數不需要第二個參數的

二.repartition

1.源碼:

怎么進行spark的基本算子使用和源碼解析

2.底層調用的是coalesce,但是傳兩個參數,允許shuffer

3.由少變多

4.repartition與coalesce區別:

就是repartition底層調用coalesce兩個參數

三.map方法使用

1.源碼

怎么進行spark的基本算子使用和源碼解析

2.解釋

每個函數操作的對象是每個元素

3.注意事項

千萬不要用于操作數據庫,否則一個元素要拿個connect,太耗費資源

四.mapPartitions

1.源碼

怎么進行spark的基本算子使用和源碼解析

2.解釋

每個函數作用在每個分區上,多用于操縱數據庫,一個分區一個connect

五.foreach 與 foreachPartition

1.源碼

怎么進行spark的基本算子使用和源碼解析

2.解釋

一個是打印每個元素,一個是按分區打印,都是action

3.注意事項

foreachPartition多用于操作數據庫,存儲結果

五.collect

1.源碼

怎么進行spark的基本算子使用和源碼解析

2.解釋與注意事項

源碼 返回數組,數組里包含所有元數
數據小用可以,因為數據都會被放到內存里,輸出到driver端的
超過內存會報oom

3.driver端的OOM調整一些方法

把driver 調大一些,有局限性
RDD中元素太大,抽取回driver會報OOP
不可以用collect
可以用take

4.collect注意數據量

collect
collectByKey
collectByValue
collectAsMap  結果集出來后變成map
這些要看數據量要悠著點用,都要數據量少
廣播變量必須數據量少才可以用

六.take

1.源碼

怎么進行spark的基本算子使用和源碼解析

2.解釋

面試常問take是全部掃描還是部分掃描:
部分掃描從源碼有體現

3.collect 與 take 注意

不確定數據有多大你可以先count一下
如果少的情況下捏可以用collect,如果太多可以用take
這些知識測試用
要全部結果你可以保存到文件系統上去saveas...

七.groupByKey 與 reduceByKey

1.源碼reduceByKey

怎么進行spark的基本算子使用和源碼解析

2.源碼groupByKey

怎么進行spark的基本算子使用和源碼解析

3.reduceByKey測試代碼

怎么進行spark的基本算子使用和源碼解析

4.測試WEBUI截圖

怎么進行spark的基本算子使用和源碼解析

5.groupByKey測試代碼

怎么進行spark的基本算子使用和源碼解析

6.測試WEBUI截圖

怎么進行spark的基本算子使用和源碼解析

7.groupByKey與reduceByKey比較

groupByKey  比reduceByKey  數據大小明顯變大,不如reduceByKey  性能好

怎么進行spark的基本算子使用和源碼解析

8.groupByKey與reduceByKey shuffer截圖比較

groupByKey   所有元素都shuffer

怎么進行spark的基本算子使用和源碼解析

reduceByKey  在map階段有一個聚合

怎么進行spark的基本算子使用和源碼解析

關于怎么進行spark的基本算子使用和源碼解析就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

韶山市| 邵东县| 长沙市| 西昌市| 马关县| 象山县| 凌源市| 夹江县| 克东县| 枣庄市| 贵定县| 特克斯县| 简阳市| 唐海县| 济南市| 卓尼县| 当涂县| 郸城县| 新绛县| 土默特右旗| 西林县| 桑植县| 涪陵区| 洪湖市| 马关县| 岳阳县| 沾化县| 吉林市| 安图县| 景宁| 古丈县| 婺源县| 新绛县| 赤水市| 上杭县| 普洱| 芦山县| 南和县| 南漳县| 达日县| 吉水县|