重慶分公司,新征程啟航
為企業(yè)提供網(wǎng)站建設(shè)、域名注冊(cè)、服務(wù)器等服務(wù)
為企業(yè)提供網(wǎng)站建設(shè)、域名注冊(cè)、服務(wù)器等服務(wù)
Spark是近年來發(fā)展較快的分布式并行數(shù)據(jù)處理框架,了解和掌握spark對(duì)于學(xué)習(xí)大數(shù)據(jù)有著至關(guān)重要的意義。但是spark依賴于函數(shù)單元,它的函數(shù)編程過程是怎樣的呢?我們?cè)趺磥響?yīng)用呢?
創(chuàng)新互聯(lián)建站是一家集網(wǎng)站建設(shè),澧縣企業(yè)網(wǎng)站建設(shè),澧縣品牌網(wǎng)站建設(shè),網(wǎng)站定制,澧縣網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷,網(wǎng)絡(luò)優(yōu)化,澧縣網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力。可充分滿足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。
一、Spark的函數(shù)式編程
Spark依賴于函數(shù)單元,函數(shù)是其編程的基本單元,只有輸入輸出,沒有state和side effect。它的關(guān)鍵概念就是把函數(shù)作為其他函數(shù)的輸入,不過在使用函數(shù)的過程中 使用的都是匿名函數(shù),因?yàn)檫@個(gè)函數(shù)只是滿足當(dāng)下計(jì)算,因此不需要固化下來進(jìn)行其它應(yīng)用。
把函數(shù)作為參數(shù)傳遞
很多RDD操作把函數(shù)作為參數(shù)傳遞,這里我們看一下RDD map操作偽代碼,把函數(shù)fn應(yīng)用到RDD的每條記錄。但這并不是它執(zhí)行的一個(gè)真正的代碼,只是通過這個(gè)代碼去看一下它處理的邏輯。
示例:傳遞命名的函數(shù)
匿名函數(shù)
匿名函數(shù)是沒有標(biāo)識(shí)符的嵌入式定義的函數(shù),最適合于臨時(shí)一次性的函數(shù)。在很多編程語言中支持,比如:
(1)Python:lambda x
(2)Scala:x =>
(3)Java 8:x ->
示例:傳遞匿名函數(shù)
(1)Python
(2)Scala
示例:Java
(1)Python
(2)Scala
Spark作為當(dāng)下大數(shù)據(jù)中重要的子目,必須深度掌握學(xué)習(xí)。但是大數(shù)據(jù)還在起步發(fā)展,并沒有形成完整成熟的理論系統(tǒng),需要我們多方位,多渠道的挖掘?qū)W習(xí)。這里推薦“大數(shù)據(jù)cn”微信公眾平臺(tái),里面介紹了很多大數(shù)據(jù)的相關(guān)知識(shí),很不錯(cuò)的!