丝瓜视频官方 教育-做有情怀、有良心、有品质的职业教育机构

手机站
丝瓜视频官方
教育

丝瓜视频官方 学习站 | 随时随地免费学

丝瓜视频官方
教育

扫一扫进入丝瓜视频官方 手机站

领取全套视频
丝瓜视频官方
教育

关注丝瓜视频官方 学习站小程序
随时随地免费学习课程

首页 技术干货 常见问题 面试题 职场就业 零基础学丝瓜视频官方 行业资讯
【热点话题】 丝瓜视频官方 技术干货 丝瓜视频官方 学习教程 丝瓜视频官方 学习笔记 丝瓜视频官方 面试题 丝瓜视频官方 丝瓜视频苹果版 问答 丝瓜视频官方 丝瓜视频苹果版 机构哪些好 丝瓜视频官方 职场就业
当前位置:丝瓜视频官方 丝瓜视频苹果版  >  丝瓜视频官方 技术干货  >  Spark Streaming 窗口函数

Spark Streaming 窗口函数

发布人:
时间: 2022-07-28 11:04:00 1658977440

Spark Streaming 窗口函数

理解窗口的两个关键概念,窗口长度(window length)和滑动间隔(slide interval)。 窗口函数会把原始 DStream 的若干批次的数据合并成为一个新的带窗口的DStream。其中窗口长度即每次生成新 DStream 需合并的原始 DStream 个数。滑动间隔即合并的原始 DStream 的时间间隔。如下图,窗口长度为3,滑动间隔为2,注意这两个值必须是源DStream批处理时间间隔的倍数

 

 

window

根据窗口长度和窗口移动速率合并原始DStream 生成新DStream

2 秒生成一个窗口长度为5 秒的Dstreamval windowedDstream= dstream.countByWindow(Seconds(5),Seconds(2))

countByWindow

返回指定长度窗口中的元素个数

2 秒统计一次近5 秒长度时间窗口的DStream 中元素的个数

val windowedDstream= dstream.countByWindow(Seconds(5),Seconds(2))

reduceByWindow(func, windowLength, slideInterval)

对设定窗口的DStream 做 reduce 操作类似RDD 的 reduce 操作只是增加了时间窗口维度

2 秒合并一次近5 秒长度时间窗口的DStream 中元素用-分隔

val windowedDstream= dstream.reduceByWindow(_+"-"+_,Seconds(5),Seconds(2))

reduceByKeyAndWindow(func, windowLength, slideInterval, [numTasks])

根据KeyWindow 来做Reduce 聚合操作

在上述 reduceByWindow 的基础上增加了Key 维度func 是相同Key 的 value 值的聚合操作函数

数据源的DStream 中的元素格式必须为(k, v) 形式windowLength 和 slideInterval

同样是用于确定一个窗口Dstream 作为数据源numTasks 是一个可选的并发数参数

2 秒根据Key 聚合一次窗口长度为5DStream 中元素下例中聚合的方式为 value 相加

val windowedDstream= pairsDstream.reduceByKeyAndWindow((a:Int, b:Int)=>(a+ b),Seconds(5),Seconds(2))

reduceByKeyAndWindow(func, invFunc, windowLength, slideInterval, [numTasks])

这个方法比上一个多传入一个函数 invFuncfunc 是 value 值的聚合操作函数在数据流入的时候执行这个操作

invFunc 是在数据流出窗口的范围后执行的操作

2 秒根据Key 聚合一次窗口长度为5DStream 中元素聚合的方式为 value 相加

invFunc假设 invFunc 的参数如下例为 a 和 b那么 a 是上个 window 经过 func 操作后的结果

b 为此次 window 与上次 window 在时间上交叉的元素经过 func 操作后结果

val windowedDstream= pairsDstream.reduceByKeyAndWindow((a:Int, b:Int)=>(a+ b),(a:Int, b:Int)=>(a- b),Seconds(5),Seconds(2))

countByValueAndWindow(windowLength, slideInterval, [numTasks])

统计时间窗口中元素值相同的元素个数

类似于RDD 的 countByValue 操作在这个基础上增加了时间窗口维度同样数据源的DStream 中的元素格式必须为(k, v) 形式

返回的DStream 格式为(K,Long)

2 秒根据Key 聚合一次窗口长度为5DStream 中元素

下例中聚合的方式为 value 相加val windowedDstream= pairsDstream.countByValueAndWindow(Seconds(5),Seconds(2))

 

 

声明:本站稿件版权均属丝瓜视频官方 教育所有,未经许可不得擅自转载。

猜你喜欢LIKE

最新文章NEW

相关推荐HOT

更多>>

开班信息
北京校区
  • 北京校区
  • 大连校区
  • 广州校区
  • 成都校区
  • 杭州校区
  • 长沙校区
  • 合肥校区
  • 南京校区
  • 上海校区
  • 深圳校区
  • 武汉校区
  • 郑州校区
  • 西安校区
  • 青岛校区
  • 重庆校区
  • 太原校区
  • 沈阳校区

14天品质课程免费学

10年以上业内强师带你蜕变精英

提交领取
qvkbm.com r6q78bi.com sntg005.com 905389.com gzauvia.com mp3bladi.com yimpl.com ktkff.com detouyu.com