当前位置:   article > 正文

spark-MLlib

spark-MLlib

测试数据

  1. 用户ID,物品ID,评分
  2. 1,101,5.0
  3. 1,102,3.0
  4. 1,103,2.5
  5. 2,101,2.0
  6. 2,102,2.5
  7. 2,103,5.0
  8. 2,104,2.0
  9. 3,101,2.5
  10. 3,104,4.0
  11. 3,105,4.5
  12. 3,107,5.0
  13. 4,101,5.0
  14. 4,103,3.0
  15. 4,104,4.5
  16. 4,106,4.0
  17. 5,101,4.0
  18. 5,102,3.0
  19. 5,103,2.0
  20. 5,104,4.0
  21. 5,105,3.5
  22. 5,106,4.0

(余弦相似度)基于用户id的智能推荐算法

  1. package ml
  2. import org.apache.spark.{SparkConf, SparkContext}
  3. import org.apache.spark.mllib.linalg.distributed.{CoordinateMatrix, MatrixEntry, RowMatrix}
  4. import org.apache.spark.rdd.RDD
  5. /**
  6. * 基于用户的协调过滤
  7. */
  8. object UserBasedCF {
  9. def main(args: Array[String]): Unit = {
  10. val conf = new SparkConf().setAppName(this.getClass.getSimpleName).setMaster("local[*]")
  11. //创建一个sparkContext
  12. val sc = new SparkContext(conf)
  13. //读取数据
  14. val data: RDD[String] = sc.textFile(args(0))
  15. //使用模式匹配,返回矩阵基础数据
  16. /**
  17. * 这里的每一项都是(i:Long , j:Long , value:double)标示行列值得元组
  18. * 其中i标示坐标,j标示列坐标,value是值
  19. */
  20. val parseData: RDD[MatrixEntry] = data.map(_.split(",")
  21. match {
  22. case Array(user, item, rate) => MatrixEntry(user.toLong, item.toLong, rate.toDouble)
  23. })
  24. //构造评分矩阵
  25. val ratings: CoordinateMatrix = new CoordinateMatrix(parseData)
  26. val entries: Array[MatrixEntry] = ratings.entries.collect()
  27. entries.foreach(println(_))
  28. println("-------------------------------------------------------")
  29. //得到某个用户对所有物品的评分,以用户1为例
  30. val ratingsOfUs
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/神奇cpp/article/detail/975797
推荐阅读
相关标签
  

闽ICP备14008679号