我有一个rdd,其中包含17位数字的电影ID,我需要在org.apache.spark.mllib.recommendation.Rating
方法中输入,但该方法只接受电影ID作为整数,同样根据我的理解这是一个问题在[Spark_forums] https://issues.apache.org/jira/browse/SPARK-2465中,但状态显示"无法修复"在那边。
我正在寻找一种方法来实现这一目标而不会发生任何冲突。
val ratings = rawRatings.map { case Array(user, movie, rating) => Rating(user.toInt, movie.toInt, rating.toDouble) }
示例电影ID = 34803284448484840
答案 0 :(得分:0)
如果您的id范围适合整数,则可以创建映射
val idToIndexMapping: RDD[(Long, Int)] = movieIdsRdd.zipWithIndex().cache()
并使用此映射替换数据中的值。生成推荐后,您可以反向查找原始ID以提供推荐。