




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
计算应用学习流式01有状态转化介绍目录02UpdateStateByKey有状态转化介绍1有状态转化介绍
DatehelloDateDateDateDateDatehelloDateDateDateDate3s3s采集器DStreamHello,2UpdateStateByKey2UpdateStateByKey
UpdateStateByKey原语用于记录历史记录,有时,我们需要在DStream中跨批次维护状态(例如流计算中累加wordcount)。针对这种情况,updateStateByKey()为我们提供了对一个状态变量的访问,用于键值对形式的DStream。给定一个由(键,事件)对构成的DStream,并传递一个指定如何根据新的事件更新每个键对应状态的函数,它可以构建出一个新的DStream,其内部数据为(键,状态)对。updateStateByKey()的结果会是一个新的DStream,其内部的RDD序列是由每个时间区间对应的(键,状态)对组成的。updateStateByKey操作使得我们可以在用新信息进行更新时保持任意的状态。为使用这个功能,需要做下面两步:1.定义状态,状态可以是一个任意的数据类型。2.定义状态更新函数,用此函数阐明如何使用之前的状态和来自输入流的新值对状态进行更新。使用updateStateByKey需要对检查点目录进行配置,会使用检查点来保存状态。
UpdateStateByKey
Wordcount:编写代码objectSparkStreaming05_State{
defmain(args:Array[String]):Unit={
valsparkConf=newSparkConf().setMaster("local[*]").setAppName("SparkStreaming")valssc=newStreamingContext(sparkConf,Seconds(3))ssc.checkpoint("cp")
//无状态数据操作,只对当前的采集周期内的数据进行处理//在某些场合下,需要保留数据统计结果(状态),实现数据的汇总//使用有状态操作时,需要设定检查点路径valdatas=ssc.socketTextStream("localhost",9999)
valwordToOne=datas.map((_,1))
//valwordToCount=wordToOne.reduceByKey(_+_)
//updateStateByKey:根据key对数据的状态进行更新//传递的参数中含有两个值//第一个值表示相同的key的value数据//第二个值表示缓存区相同key的value数据valstate=wordToOne.updateStateByKey((seq:Seq[Int],buff:Option[Int])=>{valnewCount=buff.getOrElse(0)+seq.sumOption(newCount)})state.print()
ssc.start()ssc.awaitTermination()UpdateStateByKey
Wordcount:结果展示-------------------------------------------Time:1612426170000ms-------------------------------------------(hello,1)
-------------------------------------------Time:1612426176000ms-------------------------------------------(hello,1)(spark,1)
-------------------------------------------Time:1612426179000
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025至2031年中国套接扣压器行业投资前景及策略咨询研究报告
- 2025至2030年中国静音混合器数据监测研究报告
- 2025至2030年中国钒钛球团矿数据监测研究报告
- 2025至2030年中国轻型燕尾式桌虎钳数据监测研究报告
- 2025至2030年中国自动液体包装机数据监测研究报告
- 2025至2030年中国牛奶花生数据监测研究报告
- 2025至2030年中国液压对联烫金机数据监测研究报告
- 2025至2030年中国波纹夹芯瓦数据监测研究报告
- 2025至2030年中国新华克毒克数据监测研究报告
- 2025至2030年中国复合乳糖乳酸素粉数据监测研究报告
- GB/T 19342-2024手动牙刷一般要求和检测方法
- SLT824-2024 水利工程建设项目文件收集与归档规范
- 2024年山东铁投集团招聘笔试参考题库含答案解析
- (完整word版)中国银行交易流水明细清单模版
- 胶合板公司人员招聘与配置(模板)
- 团建方案版攻防箭对战
- 桩身强度自动验算表格Excel
- 《钢铁是怎样炼成的》读书报告
- 燃气轮机LM2500介绍
- (精选)浅谈在小学数学教学中如何进行有效提问
- 堆垛机速度计算表
评论
0/150
提交评论