千锋教育-做有情怀、有良心、有品质的职业教育机构

手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

当前位置:首页  >  应聘面试  >  大数据面试题  > 批次累加

批次累加

来源:千锋教育
发布人:wjy
时间: 2022-09-02 15:35:53 1662104153

UpdataStateBykey updataStateBykey是特殊的reduceByKey, 相当于oldValue+reduceByKey(newValue1,newValue2),通过传入一个updateFunc来实现批次间数据累加的操作。

实现它必须设置checkPoint路径,updataStateBykey会自动将每次计算的结果持久化到磁盘,批次间的数据则是缓存在内存中。

缺点:大量占用内存,大量产生小文件 MapwithState mapwithState是spark1.6新增的累加操作,目前还在测试中,它的原理网上查不到,只知道是updataStateBykey的升级版,效率提升10倍。

缺点:资料不全,社区很小 不建议使用状态流累加操作,建议用窗口+第三方存储(redis)来达到同样的效果。

Spark Streaming中的updateStateByKey和mapWithState的区别和使用。

UpdateStateByKey:统计全局的key的状态,但是就算没有数据输入,他也会在每一个批次的时候返回之前的key的状态。

这样的缺点就是,如果数据量太大的话,而且我们需要checkpoint数据,这样会占用较大的存储。

如果要使用updateStateByKey,就需要设置一个checkpoint目录(updateStateByKey自己是无法保存key的状态的),开启checkpoint机制。因为key的state是在内存维护的,如果宕机,则重启之后之前维护的状态就没有了,所以要长期保存它的话需要启用checkpoint,以便恢复数据。 

MapWithState:也是用于全局统计key的状态,但是它如果没有数据输入,便不会返回之前的key的状态,有一点增量的感觉。

这样做的好处是,我们可以只关心那些已经发生变化的key,对于没有数据输入,则不会返回那些没有变化的key的数据。

这样即使数据量很大,checkpoint也不会像updateStateByKey那样,占用太多的存储。

批次累加

tags:
声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。
10年以上业内强师集结,手把手带你蜕变精英
请您保持通讯畅通,专属学习老师24小时内将与您1V1沟通
免费领取
今日已有369人领取成功
刘同学 138****2860 刚刚成功领取
王同学 131****2015 刚刚成功领取
张同学 133****4652 刚刚成功领取
李同学 135****8607 刚刚成功领取
杨同学 132****5667 刚刚成功领取
岳同学 134****6652 刚刚成功领取
梁同学 157****2950 刚刚成功领取
刘同学 189****1015 刚刚成功领取
张同学 155****4678 刚刚成功领取
邹同学 139****2907 刚刚成功领取
董同学 138****2867 刚刚成功领取
周同学 136****3602 刚刚成功领取
相关推荐HOT