成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

spark Dstreams-常見操作

IT那活兒 / 2333人閱讀
spark Dstreams-常見操作

點(diǎn)擊上方“IT那活兒”,關(guān)注后了解更多內(nèi)容,不管IT什么活兒,干就完了?。?!



01


轉(zhuǎn)換操作


與RDD類似,轉(zhuǎn)換允許修改輸入數(shù)據(jù)流中的數(shù)據(jù)。數(shù)據(jù)流支持普通Spark RDD上的許多轉(zhuǎn)換。
下面是一些常見的例子:


02


UpdateStateByKey 操作


UpdateStateByKey操作可以讓你使用新信息不斷更新狀態(tài)的同時(shí)保持任意的狀態(tài),操作起來有兩步:
1)定義狀態(tài)-狀態(tài)可以是任意數(shù)據(jù)類型;
2)定義狀態(tài)更新函數(shù)-使用函數(shù)指定如何使用以前的狀態(tài)和輸入流中的新值更新狀態(tài)。
在每個(gè)批次中spark將會(huì)對(duì)現(xiàn)有key應(yīng)用狀態(tài)更新函數(shù),而不管他們是否在批次中有新數(shù)據(jù),如果更新函數(shù)返回為none,則鍵值對(duì)會(huì)進(jìn)行消除。
假設(shè)你想維護(hù)文本數(shù)據(jù)流中每個(gè)單詞的運(yùn)行計(jì)數(shù),在這里運(yùn)行計(jì)數(shù)是狀態(tài),他是一個(gè)整數(shù),函數(shù)定義如下:
def updateFunction(newValues: Seq[Int], runningCount: Option[Int]): Option[Int] = {
val newCount = ... // add the new values with the previous running count to get the new count
Some(newCount)}
val runningCounts = pairs.updateStateByKey[Int](updateFunction _)
將為每個(gè)單詞調(diào)用更新函數(shù),newValues的序列為(word, 1)鍵值對(duì),runningCount為序列的先前的計(jì)數(shù)。
請(qǐng)注意,使用updateStateByKey需要配置檢查點(diǎn)目錄。


03


Transform 操作


transform操作(和其延伸transformWith)允許任何RDD-to-RDD的函數(shù)應(yīng)用于DStream,他可應(yīng)用與任何未在數(shù)據(jù)流API公開的RDD操作,例如數(shù)據(jù)流中的每個(gè)批與另一個(gè)數(shù)據(jù)集連接的功能在DStream API中沒有直接公開但是,你可以使用輕松的使用transform來實(shí)現(xiàn)這一點(diǎn),這提供了非常強(qiáng)大的可能性。
例如,可以通過將輸入流與垃圾郵件信息連接起來,然后根據(jù)這些進(jìn)行數(shù)據(jù)過濾,從而進(jìn)行實(shí)時(shí)數(shù)據(jù)清理。
請(qǐng)注意在每個(gè)批處理間隔中都會(huì)調(diào)用提供的函數(shù),像時(shí)變RDD操作,分區(qū)數(shù),廣播變量等可以再批之間進(jìn)行修改。


04


窗口操作


Spark streaming提供了窗口操作,窗口操作允許你在滑動(dòng)數(shù)據(jù)窗口中應(yīng)用轉(zhuǎn)換,示意圖:
如圖所示,每次窗口在源數(shù)據(jù)流上滑動(dòng)時(shí),位于窗口內(nèi)的源RDD將被組合并操作,以生成窗口化數(shù)據(jù)流的RDD。在這種特定情況下,該操作應(yīng)用于數(shù)據(jù)的最后3個(gè)時(shí)間單位,并按2個(gè)時(shí)間單位滑動(dòng)。
這表明任何窗口操作都需要指定兩個(gè)參數(shù)。
1)Window length:窗口長度;
2)Sliding interval:執(zhí)行窗口操作的時(shí)間間隔。
這兩個(gè)參數(shù)必須是源數(shù)據(jù)批間隔的倍數(shù)。
舉一個(gè)例子來說明窗口操作,假如你想統(tǒng)計(jì)過去30秒的單詞統(tǒng)計(jì)結(jié)果,窗口每10秒滑動(dòng)一次,那么可以這樣寫:
下面是一些常用的window操作,所有這些操作都包括兩個(gè)參數(shù)(windowLength,slideInterval):



本文作者:潘宗昊

本文來源:IT那活兒(上海新炬王翦團(tuán)隊(duì))

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/129614.html

相關(guān)文章

  • SparkStreaming概述

    摘要:但在企業(yè)中存在很多實(shí)時(shí)性處理的需求,例如雙十一的京東阿里,通常會(huì)做一個(gè)實(shí)時(shí)的數(shù)據(jù)大屏,顯示實(shí)時(shí)訂單。這種情況下,對(duì)數(shù)據(jù)實(shí)時(shí)性要求較高,僅僅能夠容忍到延遲分鐘或幾秒鐘。1 Spark Streaming是什么它是一個(gè)可擴(kuò)展,高吞吐具有容錯(cuò)性的流式計(jì)算框架吞吐量:?jiǎn)挝粫r(shí)間內(nèi)成功傳輸數(shù)據(jù)的數(shù)量之前我們接觸的spark-core和spark-sql都是處理屬于離線批處理任務(wù),數(shù)據(jù)一般都是在固定位置上...

    Tecode 評(píng)論0 收藏0
  • Spark Streaming學(xué)習(xí)筆記

    摘要:輸入和接收器輸入代表從某種流式數(shù)據(jù)源流入的數(shù)據(jù)流。文件數(shù)據(jù)流可以從任何兼容包括等的文件系統(tǒng),創(chuàng)建方式如下將監(jiān)視該目錄,并處理該目錄下任何新建的文件目前還不支持嵌套目錄。會(huì)被一個(gè)個(gè)依次推入隊(duì)列,而則會(huì)依次以數(shù)據(jù)流形式處理這些的數(shù)據(jù)。 特點(diǎn): Spark Streaming能夠?qū)崿F(xiàn)對(duì)實(shí)時(shí)數(shù)據(jù)流的流式處理,并具有很好的可擴(kuò)展性、高吞吐量和容錯(cuò)性。 Spark Streaming支持從多種數(shù)...

    陸斌 評(píng)論0 收藏0
  • Spark入門階段一之掃盲筆記

    摘要:同時(shí)集成了機(jī)器學(xué)習(xí)類庫。基于計(jì)算框架,將的分布式計(jì)算應(yīng)用到機(jī)器學(xué)習(xí)領(lǐng)域。提供了一個(gè)簡(jiǎn)單的聲明方法指定機(jī)器學(xué)習(xí)任務(wù),并且動(dòng)態(tài)地選擇最優(yōu)的學(xué)習(xí)算法。宣稱其性能是的多倍。 介紹 spark是分布式并行數(shù)據(jù)處理框架 與mapreduce的區(qū)別: mapreduce通常將中間結(jié)果放在hdfs上,spark是基于內(nèi)存并行大數(shù)據(jù)框架,中間結(jié)果放在內(nèi)存,對(duì)于迭代數(shù)據(jù)spark效率更高,mapred...

    starsfun 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<