Spark Streaming中的batchDuration​、windowDuration、slideDuration

Spark Streaming是一种面向微批(micro-batch)处理的流计算引擎。Spark Streaming中有3个关于时间间隔的参数,这里做以下总结。

Duration含义


  • batchDuration: 批次时间。多久一个批次。
  • windowDuration: 窗口时间。要统计多长时间内的数据。必须是batchDuration整数倍。
  • slideDuration: 滑动时间。窗口多久滑动一次。必须是batchDuration整数倍。

举例:

需求1: 实时统计5分钟内的同时在线人数。

窗口时间:5分钟。滑动时间:5分钟

需求2: 每隔30秒,统计最近1分钟的人均观看时长。

窗口时间:1分钟。滑动时间:30秒。

需求3: 每隔10分钟,统计历史以来充值人数。

窗口时间:历史以来。滑动时间:10分钟。

Duration与DStream中RDD数量关系


  1. 一个DStream中有且仅有一个RDD。不论是普通DStream还是窗口DStream。

  2. 所有DStream都可以看做是WindowedDStream。当只设置了batchDuration,可理解为batchDuration=windowDuration=slideDuration。

  3. DStream.foreachRDD遍历的是间隔slideDuration时间生成的那个RDD。该RDD包含的是windowDuration中的数据。

举例

情况1: slideDuration等于windowDuration

基于时间的翻滚窗口(Tumbling Window),无重叠。

情况2: slideDuration小于windowDuration

基于时间的滑动窗口(Sliding Window),有重叠。

情况3: slideDuration大于windowDuration

一般很少使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值