我正在读取Spark Streaming Programming Guide Documentation,并查询基于事件时间的数据处理。我已经附加了一个文档链接的屏幕截图,显示数据甚至在事件发生之前就被处理了。12:21事件在12:10 - 12:20的窗口中处理,图片是对的还是错的?

发布于 2020-12-14 18:53:20
12:13有一个迟到的活动,也是猫头鹰。我认为这是在12:10-12:20的时间范围内显示的,在12:20进行的剪辑。
我期望的12:21猫头鹰事件应该出现在12:20 - 12:30或12:15 - 12:25的时间范围内。但是,这些不会显示在图表中
发布于 2020-12-15 16:24:45
当您使用实时数据时,可能会出现延迟到达数据的情况,并且必须对较早的窗口数据执行此数据的计算。在这种情况下,较早窗口数据的结果存储在内存中,然后与较晚到达的数据聚合。但这可能导致更高的内存消耗,因为历史数据被存储在内存中,直到错过的数据到达,这可能导致内存积累。在这些场景中,Spark streaming具有水印的特性,当延迟到达的数据超过阈值时,就会将其丢弃。
在某些情况下,业务结果可能会因为丢弃这些值而不匹配。为了避免这种类型的问题,除了应用水印功能,还需要实现自定义功能来检查数据的时间戳,然后将其存储在HDFS或任何云原生对象存储系统中,以便对数据进行批量计算。这种实现导致了复杂性。
https://stackoverflow.com/questions/46691640
复制相似问题