Spark Streaming是否可以基于事件时间进行窗口化?

时间:2019-10-07 08:02:56

标签: apache-spark streaming spark-streaming dataflow

根据数据流模型论文:在大规模,无边界,无序数据处理中平衡正确性,延迟和成本的实用方法:

  

MillWheel和Spark Streaming都具有足够的可扩展性,   容错和低延迟,可以充当合理的基础,但是   缺乏可以计算事件时间的高级编程模型   会话简单明了。

总是这样吗?

1 个答案:

答案 0 :(得分:1)

不,不是。

引用https://dzone.com/articles/spark-streaming-vs-structured-streaming来节省我的午餐时间!:

  

流媒体世界中的一个大问题是如何根据   活动时间。

     

事件时间是事件实际发生的时间。它不是   流引擎的源证明在   即时的。数据生成和移交可能会存在延迟   数据发送到处理引擎。 Spark中没有这样的选项   使用事件时间进行流处理以处理数据。它仅适用于   Spark接收数据的时间戳。基于   接收时间戳记,Spark Streaming会将数据分批处理,即使   该事件是较早产生的,并且属于较早的批次   可能会导致信息准确性降低,因为它等于数据   失利。

     

另一方面,结构化流提供了以下功能:   根据事件时间处理数据时的时间戳   事件包含在收到的数据中。这是一个主要功能   在结构化流媒体中引入,它提供了一种不同的方式   根据生成数据的时间处理数据   真实世界。这样,我们可以处理迟到的数据并获得更多   准确的结果。

     

通过事件时间处理最新数据,结构化流胜过   火花流。