spark数据分析
啟動spark shell
spark-shell val rawUserData=sc.textFile("")導包 協(xié)同過濾式算法
import org.apache.spark.mllib.recommendation.ALS import org.apache.spark.mllib.recommendation.Ratting用戶評分 前三列
val rawRatings=rawUserData.map("\t").take(3)數(shù)據(jù)轉(zhuǎn)換為RDD格式
val ratingsRDD = rawRatings.map{case Array(user,movie,rating)=>Rating(user.toInt,movie.toInt,rating.toDounble)}使用ALS算法
val model=ALS.train(ratingRDD,10.10.0.01)ratingRDD 面對的數(shù)據(jù)集
val rawUserData=sc.textFile("file:/home/chares/Recommed/u.data") rawUserData.take(5).foreach(printlin) rawUserData.map(_.split('\t')(2).toDouble).stats()
count:本列數(shù)據(jù)多少個
mean:平均值
stdev:標準差
min:最低評分
導入庫
import org.apache.spark.mllib.recommendation.ALS import org.apache.spark.mllib.recommendation.RattingALS 協(xié)同過濾式算法
eg mllib學習庫 面向?qū)ο笏枷?br /> a+b ==> a.+(b
ratings = rawUserData.map(_split('\t').take(3)) val ratingRDD=rawRating.map{ case Array(user,movie,rating)Int,movie.toInt,rating.toDouble) } val model=ALS.train(ratingRDD,10.10.0.01)第三個參數(shù):迭代次數(shù) 評估前可以給大概值
第五個參數(shù):默認0.01 梯度方法中的梯度 拉姆達系數(shù)
recommendProducts
1:用戶id
2:推薦 前幾個產(chǎn)品
輸出3列:推薦系數(shù)
model.recommendUesr(464,5)464電影推薦給前5個用戶
val itemRDD=sc.textFile("file:/home/chares/Recommed/u.item") val movieTitle=itemRDD.map(_.split("\\|").take(2).map(array=>(array(0).toInt,array(1)))).collectAsMap()
map分割–然后轉(zhuǎn)換為數(shù)據(jù)集的格式
movieTil只取標題
collectAsMap:創(chuàng)建 id-名稱 對照表
總結(jié)
- 上一篇: MySQL 查询统计 日期查询
- 下一篇: 易语言读写配置项ini文件