2017-04-13 68 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以提供建議。

相關問題