![Spark大數(shù)據(jù)分析 課件 6.2 DStream_第1頁](http://file4.renrendoc.com/view6/M03/10/2E/wKhkGWdytAmANPYQAABwvheC4o0026.jpg)
![Spark大數(shù)據(jù)分析 課件 6.2 DStream_第2頁](http://file4.renrendoc.com/view6/M03/10/2E/wKhkGWdytAmANPYQAABwvheC4o00262.jpg)
![Spark大數(shù)據(jù)分析 課件 6.2 DStream_第3頁](http://file4.renrendoc.com/view6/M03/10/2E/wKhkGWdytAmANPYQAABwvheC4o00263.jpg)
![Spark大數(shù)據(jù)分析 課件 6.2 DStream_第4頁](http://file4.renrendoc.com/view6/M03/10/2E/wKhkGWdytAmANPYQAABwvheC4o00264.jpg)
![Spark大數(shù)據(jù)分析 課件 6.2 DStream_第5頁](http://file4.renrendoc.com/view6/M03/10/2E/wKhkGWdytAmANPYQAABwvheC4o00265.jpg)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
DStream
目錄/Contents01什么是DStream02
DStream轉(zhuǎn)換操作03
DStream輸出04SparkStreaming窗口操作什么是DStream01什么是DStreamSparkStreaming提供了一種高級的抽象,叫做DStream,英文全稱為DiscretizedStream,中文翻譯為“離散流”,它代表了一個持續(xù)不斷的數(shù)據(jù)流。DStream可以通過輸入數(shù)據(jù)源來創(chuàng)建,比如Kafka、Flume和Kinesis;也可以通過對其他DStream應(yīng)用高階函數(shù)來創(chuàng)建,比如map、reduce、join、window。什么是DStreamDStream是spark中繼SparkCore的RDD、SparkSQL的DataFrame和DataSet后又一基礎(chǔ)的數(shù)據(jù)類型,是SparkStreaming特有的數(shù)據(jù)類型。DStream代表了一系列連續(xù)的RDD,DStream中每個RDD包含特定時間間隔的數(shù)據(jù),存儲方式為HashMap<Time,RDD>。其中,Time為時間序列,而RDD我們都很熟悉,它是SparkCore的基礎(chǔ)數(shù)據(jù)結(jié)構(gòu)。DStream轉(zhuǎn)換操作02DStream轉(zhuǎn)換操作方法名稱描述map(func)通過將源DStream的每個元素傳遞給函數(shù)func來返回新的DStream
。flatMap(func)與map相似,不同的是每個輸入元素可以被映射出0或者更多的輸出元素。filter(func)通過僅選擇func返回true
的源DStream的記錄來返回新的DStream
。repartition(numPartitions)通過創(chuàng)建更多或更少的分區(qū)來更改此DStream中的并行度。union(otherStream)返回一個新的DStream,其中包含源DStream和otherDStream中的元素的并集。count()通過計算源DStream的每個RDD中的元素數(shù),返回一個新的單元素RDDDStream。
reduce(func)通過使用函數(shù)func(帶有兩個參數(shù)并返回一個)來聚合源DStream的每個RDD中的元素,從而返回一個單元素RDD的新DStream
。該函數(shù)應(yīng)具有關(guān)聯(lián)性和可交換性,以便可以并行計算。
countByValue()在類型為K的元素的DStream上調(diào)用時,返回一個新的(K,Long)對的DStream,其中每個鍵的值是其在源DStream的每個RDD中的頻率。reduceByKey(func,[numTasks])在(K,V)對的DStream上調(diào)用時,返回一個新的(K,V)對的DStream,其中使用給定的reduce函數(shù)聚合每個鍵的值。注意:默認(rèn)情況下,這使用Spark的默認(rèn)并行任務(wù)數(shù)(本地模式為2,而在集群模式下,此數(shù)量由config屬性確定spark.default.parallelism)進(jìn)行分組。您可以傳遞一個可選numTasks參數(shù)來設(shè)置不同數(shù)量的任務(wù)。
join(otherStream,[numTasks])當(dāng)在(K,V)和(K,W)對的兩個DStream上調(diào)用時,返回一個新的(K,(V,W))對的DStream,其中每個鍵都有所有元素對。
cogroup(otherStream,[numTasks])在(K,V)和(K,W)對的DStream上調(diào)用時,返回一個新的(K,Seq[V],Seq[W])元組的DStream。
transform(func)通過對源DStream的每個RDD應(yīng)用RDD-to-RDD函數(shù)來返回新的DStream。這可用于在DStream上執(zhí)行任意RDD操作。
updateStateByKey(func)返回一個新的“狀態(tài)”DStream,在該DStream中,通過在鍵的先前狀態(tài)和鍵的新值上應(yīng)用給定函數(shù)來更新每個鍵的狀態(tài)。這可用于維護(hù)每個鍵的任意狀態(tài)數(shù)據(jù)。什么是DStream1.transform(func)在Spark-Streaming官方文檔中提到,DStream的transform操作極大的豐富了DStream上能夠進(jìn)行的操作內(nèi)容。使用transform操作后,除了可以使用DStream提供的一些轉(zhuǎn)換方法之外,還能夠直接調(diào)用任意的調(diào)用RDD上的操作函數(shù)。下面演示如何使用transform將一行語句切分成多個單詞。2.updateStateByKey(func)updateStateByKey會統(tǒng)計全局的key的狀態(tài),不管又沒有數(shù)據(jù)輸入,它會在每一個批次間隔返回之前的key的狀態(tài)。updateStateByKey會對已存在的key進(jìn)行state的狀態(tài)更新,同時還會對每個新出現(xiàn)的key執(zhí)行相同的更新函數(shù)操作。DStream輸出03DStream輸出OutputOperations可以將DStream的數(shù)據(jù)輸出到外部的數(shù)據(jù)庫或文件系統(tǒng),當(dāng)某個OutputOperations原語被調(diào)用時(與RDD的Action相同),streaming程序才會開始真正的計算過程。也就是說在SparkStreaming中,DStream的輸出操作是真正觸發(fā)DStream上所有轉(zhuǎn)換操作進(jìn)行計算(類似于RDD中的Action算子操作)的操作,然后經(jīng)過輸出操作,DStream中的數(shù)據(jù)才能與外部進(jìn)行交互,如將數(shù)據(jù)寫入到分布式文件系統(tǒng)、數(shù)據(jù)庫以及其他應(yīng)用中。DStream輸出方法描述
print()在運(yùn)行流應(yīng)用程序的驅(qū)動程序節(jié)點(diǎn)上,打印DStream中每批數(shù)據(jù)的前十個元素。這對于開發(fā)和調(diào)試很有用。
saveAsTextFiles(prefix,[suffix])將此DStream的內(nèi)容另存為文本文件。基于產(chǎn)生在每批間隔的文件名的前綴和后綴:“prefix-TIME_IN_MS[.suffix]”。
saveAsObjectFiles(prefix,[suffix])將此DStream的內(nèi)容保存為SequenceFiles序列化Java對象的內(nèi)容?;诋a(chǎn)生在每批間隔的文件名的前綴和后綴:“prefix-TIME_IN_MS[.suffix]”。
saveAsHadoopFiles(prefix,[suffix])將此DStream的內(nèi)容另存為Hadoop文件。基于產(chǎn)生在每批間隔的文件名的前綴和后綴:“prefix-TIME_IN_MS[.suffix]”。
foreachRDD(func)最通用的輸出運(yùn)算符,將函數(shù)func應(yīng)用于從流生成的每個RDD。此功能應(yīng)將每個RDD中的數(shù)據(jù)推送到外部系統(tǒng),例如將RDD保存到文件或通過網(wǎng)絡(luò)將其寫入數(shù)據(jù)庫。請注意,函數(shù)func在運(yùn)行流應(yīng)用程序的驅(qū)動程序進(jìn)程中執(zhí)行,并且通常在其中具有RDD操作,這將強(qiáng)制計算流RDD。SparkStreaming窗口操作04SparkStreaming窗口操作方法描述
window(windowLength,
slideInterval)
返回基于源DStream的窗口批處理計算的新DStream。countByWindow(windowLength,
slideInterval)返回基于滑動窗口的DStream中的元素數(shù)。
reduceByWindow(func,
windowLength,
slideInterval)返回一個新的單元素流,該流是通過使用func在滑動間隔內(nèi)聚合流中的元素而創(chuàng)建的。該函數(shù)應(yīng)該是關(guān)聯(lián)的和可交換的,以便可以并行正確地計算它。
reduceByKeyAndWindow(func,
windowLength,
slideInterval,[numTasks])在(K,V)對的DStream上調(diào)用時,返回新的(K,V)對的DStream,其中使用給定的reduce函數(shù)func在滑動窗口中的批處理上聚合每個鍵的值。注意:默認(rèn)情況下,這使用Spark的默認(rèn)并行任務(wù)數(shù)(本地模式為2,而在集群模式下,此數(shù)量由config屬性確定spark.default.parallelism)進(jìn)行分組。您可以傳遞一個可選numTasks參數(shù)來設(shè)置不同數(shù)量的任務(wù)。
reduceByKeyAndWindow(func,
invFunc,
windowLength,
slideInterval,[numTasks])一種更有效的版本,reduceByKeyAndWindow()其中,使用前一個窗口的減少值遞增地計算每個窗口的減少值。這是通過減少進(jìn)入滑動窗口的新數(shù)據(jù)并“逆向減少”離開窗口的舊數(shù)據(jù)來完成的。一個示例是在窗口滑動時“增加”和“減少”鍵的計數(shù)。但是,它僅適用于“可逆歸約函數(shù)”,即具有對應(yīng)的“逆歸約”函數(shù)(作為參數(shù)invFunc)的歸約函數(shù)。像in中一樣reduceByKeyAndWindow,reduce任務(wù)的數(shù)量可以通過可選參數(shù)配置。請注意,必須啟用
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度新型起重機(jī)專利許可及銷售代理合同
- 合作房地產(chǎn)開發(fā)協(xié)議(28篇)
- 師傅和徒弟作文
- 2025年兼職工勞務(wù)合同格式
- 2025年企業(yè)合作投資與合資合同
- 2025年信用卡預(yù)借現(xiàn)金協(xié)議書范本
- 2025年中尺度自動氣象站系統(tǒng)項目立項申請報告
- 2025年區(qū)域飲品代理合作協(xié)議范本
- 2025年式多功能打印機(jī)銷售合同規(guī)范
- 2025年企業(yè)電力安全使用標(biāo)準(zhǔn)協(xié)議書
- 2024-2025學(xué)年華東師大版數(shù)學(xué)七年級上冊計算題專項訓(xùn)練
- DL∕T 5452-2012 變電工程初步設(shè)計內(nèi)容深度規(guī)定
- 2024至2030年中國中檔商務(wù)酒店連鎖行業(yè)市場調(diào)查研究及發(fā)展戰(zhàn)略規(guī)劃報告
- 血栓性微血管病的診治
- 綜合客運(yùn)樞紐換乘區(qū)域設(shè)施設(shè)備配置要求JTT1066-2016
- 人工智能產(chǎn)業(yè)分類目錄
- 中國急性缺血性卒中診治指南(2023)解讀
- 一年級下冊寫字表練字帖
- 青島版小學(xué)數(shù)學(xué)三年級上冊《分?jǐn)?shù)的初步認(rèn)識》教學(xué)案例
- 2024PowerTitan系列運(yùn)維指導(dǎo)儲能系統(tǒng)運(yùn)維指導(dǎo)
- 2024年成都溫江興蓉西城市運(yùn)營集團(tuán)有限公司招聘筆試沖刺題(帶答案解析)
評論
0/150
提交評論