【问题标题】:Sliding Window without watermark in Apache Spark?Apache Spark中没有水印的滑动窗口?
【发布时间】:2021-04-30 12:36:26
【问题描述】:

考虑到我有一个简单的聚合,其中定义了一个没有任何水印的窗口。

df
.groupBy(window(col("time"), "30 minutes","10 minutes").as("time"))
.aggr ....

这里我们的窗口是30 minutes,滑动区间为10 minutes

  • Q1.是不是表示10分钟后会滑落?
  • Q2.如果是,那是不是有点类似于水印?

【问题讨论】:

  • 好的,还有一个发现,如果我们在上面的代码示例中不使用水印,随着新的传入记录,数据帧将继续增长。谢谢@thebluephantom

标签: scala apache-spark spark-structured-streaming spark-streaming-kafka spark-checkpoint


【解决方案1】:
  1. 是的,它将每 10 分钟滑动/计算一次(滑动间隔),提供 30 分钟的重叠窗口。您没有定义是使用事件还是摄取时间。如果使用事件时间,那么迟到的处理,乱序处理,随着时间的流逝将这些数据包含在更新的窗口中。

  2. 继上一个问题之后,这与水印不同。加水印意味着在一段时间后,迟到的数据被丢弃,因此上述效果需要考虑时间来应对。也就是说,有些老的windows不会更新了。

【讨论】:

  • 嗨@thebluephantom,如果我们不保留任何水印,这是否意味着状态将随着新的传入数据而继续增长,包括以前的数据?
  • 这是我的理解,如果使用完整,最终会导致 oom。因此丢弃数据的水印。在文档中并不总是很好地解释了恕我直言。
  • 谢谢@thebluephantom,我对状态还有一个疑问,请你看看:更具体地说:stackoverflow.com/questions/65917336/…
  • 稍后再看
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-21
  • 2019-12-28
  • 2018-07-23
  • 2018-05-31
  • 1970-01-01
相关资源
最近更新 更多