spark-streaming之window窗口理解

val ssc: StreamingContext = new  StreamingContext(conf,Seconds(5))  // //batchdurat
xxx.window(Minutes(60),Seconds(10)) // windowduration slideduration默认=batchduration

要理解spark-streaming 窗口要理解上面的三个时间单位

second(5)是指spark将流式数据划分为几秒一个批次,我这里是5s

minutes(60)是指开窗的长度是60min,其中这个窗口的开始点是你程序开始运行或者说spark接收到数据那一秒开始算

seconds(10)是指滑动步长

主要说下batchduration windowduration

个人理解 如果batchduration=windowduration =60min 那么处理的数据是每个小时处理一个小时的数据

例如2:00处理1:00-2:00的数据,3:00的2:00-3:00的数据

当然这个是不现实的,因为spark-streaming处理的是实时数据按道理batchduration这个值越小就越接近实时,这个例子只是为了让你更好理解,

如果batchduration=windowduration =5s 那么窗口也只开了5s的窗口也不符合实际要求

最后解释下我上述代码的代表意义

每5秒处理一下流式数据(无延迟情况下)

1:00:00程序启动

1:00:05的时候处理了1:00:00-1:00:05的数据(聚合map filter),

1:00:10的时候处理了1:00:05-1:00:10的数据(聚合map filter),

然后把1:00:05和1:00:10两次处理的结果再计算

最后输出结果

然后过10s输出结果,直到2:00 输出1:00:00-2:00:00的结果,

但是2:00:00以后都只输出一个小时以内的计算结果

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值