(版本定制)第14课:Spark Streaming源码解读之State管理之updateStateByKey和mapWithState解密
发表于:2025-02-01 作者:千家信息网编辑
千家信息网最后更新 2025年02月01日,本期内容:1、updateStateByKey解密2、mapWithState解密背景:整个Spark Streaming是按照Batch Duractions划分Job的。但是很多时候我们需要算过去
千家信息网最后更新 2025年02月01日(版本定制)第14课:Spark Streaming源码解读之State管理之updateStateByKey和mapWithState解密
本期内容:
1、updateStateByKey解密
2、mapWithState解密
背景:
整个Spark Streaming是按照Batch Duractions划分Job的。但是很多时候我们需要算过去的一天甚至一周的数据,这个时候不可避免的要进行状态管理,而Spark Streaming每个Batch Duractions都会产生一个Job,Job里面都是RDD,
所以此时面临的问题就是怎么对状态进行维护?这个时候就需要借助updateStateByKey和mapWithState方法完成核心的步骤。
1、简单看下updateStateByKey源码:
在DStream中updateStateByKey和mapWithState是通过隐式转换来完成,本身没有这样的方法。
implicit def toPairDStreamFunctions[K, V](stream: DStream[(K, V)]) (implicit kt: ClassTag[K], vt: ClassTag[V], ord: Ordering[K] = null): PairDStreamFunctions[K, V] = {new PairDStreamFunctions[K, V](stream)}
[: ClassTag]( updateFunc: ([]Option[]) => Option[] ): DStream[()] = ssc.withScope { updateStateByKey(updateFuncdefaultPartitioner())}
最终会通过StateDStream中的computeUsingPreviousRDD和compute来完成这样的功能,简单的流程图如下:
2、简单看下mapWithState源码
mapWithState是返回MapWithStateDStream对象,维护和更新历史状态都是基于Key,使用一个function对key-value形式的数据进行状态维护
[: ClassTag: ClassTag]( spec: StateSpec[] ): MapWithStateDStream[] = {MapWithStateDStreamImpl[]( selfspec.asInstanceOf[StateSpecImpl[]] )}
通过InternalMapWithStateDStream类中的compute来完成,简单的流程图如下:
状态
时候
源码
数据
方法
流程
流程图
管理
不可避免
内容
功能
历史
对象
就是
形式
核心
步骤
背景
问题
更新
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
阿里巴巴杭州网络技术有限公司
pdb数据库的功能
舟山嵌入式软件开发需要学什么
hp gen10服务器网卡
青岛蓝色探索网络技术
日本软件开发工作经验
宜兴自动软件开发市场价格
积极防范化解网络安全风险隐患
什么叫数据库逻辑隔离
镜子软件开发价格
美国宣传教育网络安全
长江委网络安全事件分为三级
互联网科技新鲜事
网络安全应急处置工作办法
长春质量网络技术服务有哪些
在关系数据库运算 在某表
合肥互动博物馆软件开发
学校机房用的计算机服务器型号
河南工业软件开发哪家便宜
软件开发行业工时价
怎么找软件开发的项目
当代大学生如何学习网络安全
http的代理服务器地址
实时电话内容会保持在服务器嘛
网络安全大赛南昌
软件开发okr 工具
主流数据库的数据模型
服务器开机后风扇声音大
web服务器命令
北大数据库作业答案