2016-10-12 55 views
0

我正在使用spark 1.6並且遇到了這個函數reduceByKeyAndWindow,我正在使用它來對通過kafka主題傳輸的數據執行字數統計。Spark中的reduceByKeyAndWindow函數的奇怪行爲

以下是reduceByKeyAndWindow提供的替代列表。正如我們所看到的,所有的替代品都具有與額外參數相似的簽名。

List of Functions

但當我只是用reduceByKeyAndWindow我減少功能或與我減少功能和持續時間,它的工作原理,按照下圖不給我任何錯誤。

No errors or warnings here

但是,當我用減少功能,持續時間和滑動窗口時間它開始給我下面的錯誤的選擇,情況與此相同的其他替代方案,如下圖所示。

Error message recieved

我真的不知道這裏發生了什麼,我怎麼能解決這個問題。如果你對此有何評論此行.words.map(x => (x, 1L))你應該能夠使用的方法[.reduceByWindow(_+_, Seconds(2), Seconds(2))]從DStream

任何幫助表示讚賞

+0

'reduceByKeyAndWindow的更多詳細信息的文件(_ + _,_ - _,分(10),秒(2),2)'這一個適合我.. – Shankar

+0

回答你的問題...... – Shankar

回答

0

如果您將單詞轉換爲單詞count,那麼您應該使用下面的方法。

reduceByKeyAndWindow(_ + _, _ - _, Minutes(10), Seconds(2), 2) 

請參閱那些是什麼reduce functioninverse reduce功能https://github.com/apache/spark/blob/master/streaming/src/main/scala/org/apache/spark/streaming/dstream/DStream.scala

+0

事情是,如果你看到可用的功能列表,我有該功能的簽名,也沒有反向減少功能,所以在技術上它應該工作。 因爲它不起作用,你能解釋爲什麼它不工作,錯誤信息是什麼意思? –