Apache Spark 任务序列化
Apache Spark Task Serialization
这个方法给我一个任务序列化错误:
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
方法有关,但我不确定为什么会发生这种情况。我一直遇到这些问题并不断解决它们,我想知道它们为什么会发生,这样我就可以停止犯同样的错误并一遍又一遍地经历这种修复代码的情况。
您可以通过以下方式启用序列化调试:
-Dsun.io.serialization.extendedDebugInfo=true
这个方法给我一个任务序列化错误:
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
方法有关,但我不确定为什么会发生这种情况。我一直遇到这些问题并不断解决它们,我想知道它们为什么会发生,这样我就可以停止犯同样的错误并一遍又一遍地经历这种修复代码的情况。
您可以通过以下方式启用序列化调试:
-Dsun.io.serialization.extendedDebugInfo=true