协同过滤算法
获取spark自带的MovieLens数据集,其中每行包含一个用户、一个电影、一个该用户对该电影的评分以及时间戳。我们使用默认的ALS.train()
方法,即显性反馈(默认implicitPrefs
为false)来构建推荐模型并根据模型对评分预测的均方根误差来对模型进行评估。
导入需要的包:
import org.apache.spark.ml.evaluation.RegressionEvaluator
import org.apache.spark.ml.recommendation.ALS
根据数据结构创建读取规范
创建一个Rating类型,即[Int, Int, Float, Long];然后建造一个把数据中每一行转化成Rating类的函数。
case class Rating(userId: Int, movieId: Int, rating: