我正在研究 Spark Streaming 的一个用例,该用例需要在不同的窗口长度上计算 4 个不同的输出。
特别是,我需要我的程序基于 4 个不同的时间窗口(窗口彼此独立)每秒输出计算结果。
到目前为止,我通过调用在 60 秒的单个窗口上实现了它
.reduceByKeyAndWindow(comingTs, leavingTs, Durations.seconds(60), Durations.seconds(1))
.cache();
在一个JavaPairDStream<K, V>
对象上(批次应该是 1 秒长)。之后,对这些元组进行计算。
现在,在同一秒内,我需要输出 300 秒和 600 秒长的窗口的结果,彼此独立。
我的问题是:这在 Spark Streaming 中是否可行?我对它比较陌生,我不能说。如果是的话,有人可以建议我怎么做吗?