reduceByKeyAndWindow 有一个重载reduceByKeyAndWindow(func,invFunc,windowLength,slideInterval,[numTasks]),可以实现高效计算。它的原理是维护一个中间状态(结果),然后对增量(减量)进行计算。但同时也随之带来两个问题
1、必须维护中间状态,所以使用这个方法时,必须同时使用checkpiont。
2、因为有中间结果的存在,所以当某个key已经完全滑出窗口后,这个key依然还会在中间结果中维护
随着时间的推移,如果key值量非常大的话,维护这个中间结果成本将很高。有没有什么办法既可以实现增量计算,又能及时的将无效的key移除中间结果呢?