window 聚合的数据怎么获取?
从kafka流过来的数据有时间和设备的ID,设备的当前状态,每10秒统计前1分钟内接收到的信息的设备数,
val df = kafkaDataFrame
.withWatermark("datatime", "1 minute")
.groupBy(
window($"datatime", "1 minute", "10 seconds"),
$"devId"
).agg(max($"datatime"))
df .writeStream
.outputMode(OutputMode.Append)
.foreachBatch((df: Dataset[Row], batch: Long) =>{
val fmt = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")
val dayStr = LocalDateTime.now().format(fmt)
df.foreach(row => println(s"${dayStr}:${row.toSeq}"))
})
看到输出的数据不是最后一次窗口计算的,包含了前面好几次窗口汇总数据,我只要最后一次怎么办?