1

我正在尝试使用 Spark 的 MLlib 库构建推荐系统。(使用 Scala)为了能够使用 ALS train 方法,我需要使用 Rating() 方法(这是包 org.apache.spark.mllib.recommendation.Rating 的一部分)构建一个评级矩阵。该方法需要一个 int 作为用户 id 传递。但是,我正在使用的数据集有 11 位 id,因此当我尝试传递它时会引发错误。

有谁知道是否有某种方法可以将一个长值传递给 Rating 方法?或者以某种方式覆盖这个方法?或者以某种方式将 11 位数字唯一地转换为 10 位或 9 位数字,同时保持整数?

任何帮助将不胜感激。谢谢

4

1 回答 1

2

我认为,这将取决于您的 ID 范围。你能简单地将 Id 取模 Int.MaxValue 吗?那是:

(id % Int.MaxValue).toInt

或者你可以把它散列到一个 Int 吗?

id.hashCode
于 2014-06-19T13:42:43.743 回答