溫馨提示×

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

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Spark的函數(shù)式編程

發(fā)布時(shí)間:2020-06-16 16:18:04 來源:網(wǎng)絡(luò) 閱讀:908 作者:caosheng03 欄目:大數(shù)據(jù)

Spark是近年來發(fā)展較快的分布式并行數(shù)據(jù)處理框架,了解和掌握spark對(duì)于學(xué)習(xí)大數(shù)據(jù)有著至關(guān)重要的意義。但是spark依賴于函數(shù)單元,它的函數(shù)編程過程是怎樣的呢?我們?cè)趺磥響?yī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è)代碼去看一下它處理的邏輯。

Spark的函數(shù)式編程

示例:傳遞命名的函數(shù)

Spark的函數(shù)式編程

  • 匿名函數(shù)

匿名函數(shù)是沒有標(biāo)識(shí)符的嵌入式定義的函數(shù),最適合于臨時(shí)一次性的函數(shù)。在很多編程語言中支持,比如:

(1)Python:lambda x

(2)Scala:x =>

(3)Java 8:x ->

示例:傳遞匿名函數(shù)

(1)Python

Spark的函數(shù)式編程

(2)Scala

Spark的函數(shù)式編程

  • 示例:Java

(1)Python

Spark的函數(shù)式編程

(2)Scala

Spark的函數(shù)式編程

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ò)的!


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI