【发布时间】:2014-11-10 23:33:15
【问题描述】:
我一直在使用 Scala + Spark 和 Movie Recommendation with MLib 教程。
获得我的预测后,我需要每个用户的前 3 个项目。
val predictions =
model.predict(usersProducts).map { case Rating(user, product, rate) =>
(user, product, rate)
}
我试过了:
def myPrint(x:(Int, Int, Double)) = println(x._1 + ":" + x._2 + " - " +x._3)
predictions.collect().sortBy(- _._3).groupBy(_._1).foreach( t2 => t2._2.take(3).foreach(myPrint) )
(_.1 是用户,_.2 是项目,_.3 是费率)
我必须添加“collect()”方法才能使其工作,但我无法序列化此任务。 顺便说一句,我添加了myPrint方法,因为我不知道如何从最后一行获取集合或地图。
有什么想法让它可序列化吗?
知道从最后一行获取集合/地图吗?
如果我不能做得更好,我会在 myPrint 中写入数据库并在 1000 次插入后提交。
谢谢。
【问题讨论】:
标签: scala serialization apache-spark recommendation-engine