2017-04-13 40 views
0

我有一个rdd,其电影ID只要17位数,我需要在org.apache.spark.mllib.recommendation.Rating方法中提供,但该方法只接受电影ID作为整数,我的理解是[Spark_forums] https://issues.apache.org/jira/browse/SPARK-2465中也提出了一个问题,但状态显示“无法修复”。在mllib推荐模型中使用评分方法中的长数据类型

我正在寻找一种方法来实现这个没有任何碰撞。

val ratings = rawRatings.map { case Array(user, movie, rating) => Rating(user.toInt, movie.toInt, rating.toDouble) }

样本影片ID = 34803284448484840

回答

0

如果你的ID范围的整数适合,您可以创建一个映射

val idToIndexMapping: RDD[(Long, Int)] = movieIdsRdd.zipWithIndex().cache() 

,并使用这个映射在你的数据替换值。建议生成后,您可以反向查找原始ID以提供建议。

相关问题