我正在尝试从结构化流式数据集中删除延迟数据。
使用spark的withWatermark函数没有帮助,延迟的数据不会被删除。
我的数据集在event time列上没有聚合,所以这可能是原因,根据sparks internals,水印用于状态管理,但我想使用它来删除延迟数据。
有没有其他方法可以强迫spark尊重水印?
在日志中,我看到应用了水印(我之前正在发送数据以更新水印):
"eventTime" : {
"avg" : "2020-04-08T14:10:01.532Z",
"max" : "2020-04-12T02:10:01.532Z",
"min" : "2020-04-05T02:10:01.532Z",
"watermark" : "2020-04-09T02:00:01.532Z"
}但旧的事件仍然会写入结果中。
发布于 2020-07-15 23:41:57
我遇到了同样的问题。我在文档中看到,不能保证Spark会丢弃旧数据。Here is the snapshot of official document
https://stackoverflow.com/questions/61186393
复制相似问题