上接基于Spark MLlib平台和基于模型的协同过滤算法的电影推荐系统(一)
1. 设置不打印一堆INFO信息(减少打印量 保证Shell页面清晰干净)
sc.setLogLevel("WARN")
2. 导入相关recommendation包中相关类,加载数据,并解析到RDD【Rating】对象
①导入相关recommendation包,其中recommendation._的含义是导入recommendation包中全部类
scala> import org.apache.spark.mllib.recommendation._
import org.apache.spark.mllib.recommendation._
②加载数据;匹配模式;user product rating的类型是Int Int Double,需要转换;
scala> val data = sc.textFile("/root/cccc.txt").map(_.split(",") match {case Array (user,product,rating) => Rating (user.toInt,product.toInt,rating.toDouble)})
data: org.apache.spark.rdd.RDD[org.apache.spark.mllib.recommendation.Rating] = MapPartitionsRDD[29] at map at <console>:24
或者:val data = sc.textFile("/root/cccc.txt").map(_.split(",");Rating(f(0).toInt,f(1).toInt,f(2).toDouble) //这句运行有错。
/**如果不用模式匹配 还可以用if判断(本身case就是if的另一种形式)**/
【附加:.first可以查看数据的第一行;.count可以统计数据的行数
scala> data.first
res24: org.apache.spark.mllib.recommendation.Rating = Rating(1,1,5.0)
scala> data.count
res25: Long = 16