Apache Spark Streaming:在内存中积累数据,并在稍后输出



如果我理解正确的话,spark流是通过一组转换和转换后的输出操作将您的RDD批次管道化。这将对每个批处理执行,因此输出操作也将对每个批处理执行。但是,由于每次输出都非常昂贵,所以我想处理批次并累积结果,并且仅在某些事件(例如,在某个时间段之后)写出累积的结果并结束程序。

我知道我可以积累数据,例如与updateStateByKey,但我不知道如何告诉Spark使用输出操作(例如saveAsTextFiles)只有很久以后,当一些条件到达。

这可能吗?

这在flink中可能吗?

免责声明:我是Apache Flink的贡献者。

由于丰富的窗口语义,Flink应该可以做到这一点:http://ci.apache.org/projects/flink/flink-docs-master/apis/streaming_guide.html#window-operatorsFlink有很多预定义的窗口。此外,您还可以实现自己的窗口策略,以便在需要时获得自定义行为。

相关内容

  • 没有找到相关文章

最新更新