最近2018中文字幕在日韩欧美国产成人片_国产日韩精品一区二区在线_在线观看成年美女黄网色视频_国产精品一区三区五区_国产精彩刺激乱对白_看黄色黄大色黄片免费_人人超碰自拍cao_国产高清av在线_亚洲精品电影av_日韩美女尤物视频网站

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
怎么進行spark的基本算子使用和源碼解析-創(chuàng)新互聯(lián)

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

創(chuàng)新互聯(lián)主營貴港網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,成都app開發(fā),貴港h5小程序開發(fā)搭建,貴港網(wǎng)站營銷推廣歡迎貴港等地區(qū)企業(yè)咨詢

一.coalesce

1.coalesce源碼

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

2.coalesce解釋

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

3.coalesce應(yīng)用場景

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

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

4.上述的極端情況

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

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

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

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

6.你傳一個參數(shù)要小于默認分區(qū)才會生效

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

7.coalesce設(shè)置的參數(shù)大于默認的分區(qū)數(shù)不會生效,前提是一個參數(shù)

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

8.coalesce設(shè)置的參數(shù)大于默認的分區(qū)數(shù)生效

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

9.此問題對應(yīng)的源碼:

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

二.repartition

1.源碼:

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

2.底層調(diào)用的是coalesce,但是傳兩個參數(shù),允許shuffer

3.由少變多

4.repartition與coalesce區(qū)別:

就是repartition底層調(diào)用coalesce兩個參數(shù)

三.map方法使用

1.源碼

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

2.解釋

每個函數(shù)操作的對象是每個元素

3.注意事項

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

四.mapPartitions

1.源碼

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

2.解釋

每個函數(shù)作用在每個分區(qū)上,多用于操縱數(shù)據(jù)庫,一個分區(qū)一個connect

五.foreach 與 foreachPartition

1.源碼

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

2.解釋

一個是打印每個元素,一個是按分區(qū)打印,都是action

3.注意事項

foreachPartition多用于操作數(shù)據(jù)庫,存儲結(jié)果

五.collect

1.源碼

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

2.解釋與注意事項

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

3.driver端的OOM調(diào)整一些方法

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

4.collect注意數(shù)據(jù)量

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

六.take

1.源碼

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

2.解釋

面試常問take是全部掃描還是部分掃描:
部分掃描從源碼有體現(xiàn)

3.collect 與 take 注意

不確定數(shù)據(jù)有多大你可以先count一下
如果少的情況下捏可以用collect,如果太多可以用take
這些知識測試用
要全部結(jié)果你可以保存到文件系統(tǒng)上去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  數(shù)據(jù)大小明顯變大,不如reduceByKey  性能好

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

8.groupByKey與reduceByKey shuffer截圖比較

groupByKey   所有元素都shuffer

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

reduceByKey  在map階段有一個聚合

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

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


網(wǎng)站標題:怎么進行spark的基本算子使用和源碼解析-創(chuàng)新互聯(lián)
URL鏈接:http://fisionsoft.com.cn/article/hdeds.html