Сериализация задач Apache Spark

Этот метод дает мне ошибку сериализации задачи:

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()

Ошибку не выдает!

Я не понимаю, почему, какая разница? Это как-то связано с вызовом метода avgDev с действием aggregate, но я не уверен, почему это происходит. У меня продолжают возникать эти проблемы, и я продолжаю их решать, я хотел бы знать, почему они возникают, чтобы я мог перестать совершать одну и ту же ошибку и повторять этот сценарий исправления кода снова и снова.


person monster    schedule 04.04.2015    source источник
comment
Не видя вашего полного соответствующего кода (например, класса), невозможно сказать, в чем проблема. Что-то ссылается на что-то, что не является Serializable. Поскольку вы, кажется, ищете общий метод отладки такого рода проблем, вот что я ответил. Надеюсь, поможет!   -  person Daniel Darabos    schedule 05.04.2015
comment
Да, помогло, теперь я в голове... Думаю! Спасибо, Даниил!   -  person monster    schedule 06.04.2015


Ответы (1)


Вы можете включить отладку сериализации с помощью:

-Dsun.io.serialization.extendedDebugInfo=true

person Daniel Darabos    schedule 04.04.2015