代碼:
import org.apache.spark._
import org.apache.spark.mllib.recommendation.{ALS, Rating}
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 = 2 //設置隱藏因子
val numIterations = 2 //設置迭代次數
val model = ALS.train(ratings, rank, numIterations, 0.01) //進行模型訓練
var rs = model.recommendProducts(2,1) //爲用戶2推薦一個商品
rs.foreach(println) //打印結果
}
}
結果:
Rating(2,15,3.91759837248388)