2015-04-04 114 views
0

這種方法給了我一個任務序列化錯誤:阿帕奇星火任務序列化

def singleItemPrediction(userid : Int, item : Int) = { 

    val userAndItems = useritemrating.filter({x => x._1 == userid && x._2 != item}) 

    val userMean = userAndItems.aggregate(0.0)((accum, rating) => accum + rating._3, _+_)/userAndItems.count() 

    userMean + userAndItems.aggregate(0.0)((accum, ui) => accum + avgDev(userid, item, ui._2), _+_)/userAndItems.count() 

} 

改變底線(所返回的)到:

avgDev(userid, item1, item2), _+_)/userAndItems.count() 

不給一個錯誤!

我不明白爲什麼,有什麼區別?這與aggregate動作調用avgDev方法有關,但我不確定爲什麼會發生這種情況。我一直有這些問題並繼續解決它們,我想知道它們爲什麼會發生,所以我可以停止犯同樣的錯誤,並通過反覆修復代碼的這種情況。

+0

沒有看到您完整的相關代碼(如類),這是不可能的告訴是什麼問題。有些東西指的是不是「Serializable」的東西。既然你似乎在尋找調試這類問題的一般方法,那就是我的回答。希望能幫助到你! – 2015-04-05 10:44:47

+0

是的,它的幫助,我現在已經得到了我的頭...我想!謝謝,丹尼爾! – monster 2015-04-06 17:47:16

回答

1

您可以啓用系列化調試:

-Dsun.io.serialization.extendedDebugInfo=true

相關問題