object CollaborativeFilter {
def main(args: Array[String]) {
val conf = new SparkConf().setMaster("local").setAppName("CollaborativeFilter ") //设置环境变量
val sc = new SparkContext(conf) //实例化环境
val data = sc.textFile("c://u1.txt") //设置数据集
val ratings = data.map(_.split(' ') match { //处理数据
case Array(user, item, rate) => //将数据集转化
Rating(user.toInt, item.toInt, rate.toDouble) //将数据集转化为专用Rating
})
val rank = 3 //设置隐藏因子
val numIterations = 4 //设置迭代次数
val model = ALS.train(ratings, rank, numIterations, 0.01) //进行模型训练
var rs = model.recommendProducts(2,5) //为用户2推荐一个商品
rs.foreach(println) //打印结果
}
}
U1.txt格式如下
1 11 2
1 12 3
1 15 1
2 11 1
2 11 1
2 13 5
3 17 4
3 12 2
3 15 1
4 12 1
4 13 2
4 14 4