我正在使用spark 1.6并遇到了这个函数reduceByKeyAndWindow,我用它来对通过kafka主题传输的数据执行字数统计。
以下是reduceByKeyAndWindow提供的备选列表。我们可以看到,所有替代品都有类似的签名和额外的参数。
但是当我只使用reduceByKeyAndWindow和我的reduce函数或者我的reduce函数和持续时间时,它可以工作,并且不会给我任何错误,如下所示。
但是当我使用具有reduce功能,持续时间和滑动窗口时间的替代方案时,它开始给我以下错误,其他替代方案也是如此,如下所示。
我不确定这里发生了什么,我该如何解决问题。
感谢任何帮助
答案 0 :(得分:0)
如果您对此行.words.map(x => (x, 1L))
发表评论,则应该可以使用.reduceByWindow(_+_, Seconds(2), Seconds(2))
中的[DStream
]方法。
如果将单词转换为带有count的单词,则应使用以下方法。
reduceByKeyAndWindow(_ + _, _ - _, Minutes(10), Seconds(2), 2)
请参阅文档,详细了解reduce function
和inverse reduce
函数https://github.com/apache/spark/blob/master/streaming/src/main/scala/org/apache/spark/streaming/dstream/DStream.scala