博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MLlib协同过滤ALS算法初探
阅读量:6262 次
发布时间:2019-06-22

本文共 1724 字,大约阅读时间需要 5 分钟。

hot3.png

ALS算法做协同过滤大致就是建立用户商品矩阵,根据评分值以解数独的形式解出来

import java.text.SimpleDateFormatimport java.util.Dateimport org.apache.spark.mllib.recommendation.{ALS, Rating }import org.apache.spark.{SparkContext, SparkConf}/** * Created by hadoop on 2015/7/20. */object MLlibCF {  def main(args: Array[String]) {    val time = new SimpleDateFormat("MMddHHmm").format(new Date())    val sparkConf = new SparkConf().setAppName("MLlibCF-"+time)    sparkConf.set("mapreduce.framework.name", "yarn")    sparkConf.set("spark.rdd.compress", "true")//是否需要压缩序列化的rdd分区,牺牲cpu时间提高空间利用率    sparkConf.set("spark.serializer","org.apache.spark.serializer.KryoSerializer")//配置序列化的接口    sparkConf.set("spark.storage.memoryFraction", "0.2")    sparkConf.set("spark.scheduler.mode", "FAIR")    sparkConf.set("spark.ui.port", "4042")    sparkConf.set("spark.akka.frameSize", "100")    val sc = new SparkContext(sparkConf)    val data = sc.textFile("hdfs://namenode:9000/data/test_in/mahout1.txt", 1)    //对读取的文件进行预处理,并放入Rating容器中    val ratings = data.map(_.split(",") match{      case(Array(user, product, rate))        => Rating(user.toInt, product.toInt, rate.toDouble)    })    //需要求出的值    val user1 = sc.parallelize(List("1,105","1,106","2,105","2,107","3,102")).map(    _.split(",") match {      case (Array(user, product))      => (user.toInt, product.toInt)    })    val rank = 10    val numIterations = 20    //建立ALS模型    val model = ALS.train(ratings, rank, numIterations, 0.01)        //读取需要的值    val predictions = model.predict(user1).map{      case Rating(user, product, rate)        => ((user, product), rate)    }    predictions.saveAsTextFile("hdfs://10.207.0.217:9000/data/test_out/zk/MLlib-"+time)  }}

转载于:https://my.oschina.net/ssrs2202/blog/493927

你可能感兴趣的文章
【跃迁之路】【724天】程序员高效学习方法论探索系列(实验阶段481-2019.2.14)...
查看>>
个人博客四|注册登录退出功能后台开发
查看>>
工作中常用到的ES6语法
查看>>
Django-Signals信号量
查看>>
flac格式转换mp3格式要用什么软件
查看>>
19. Remove Nth Node From End of List
查看>>
最佳在线图表软件
查看>>
Work with Alexa : 智能设备连接到Alexa
查看>>
[sublime系列文章] sublime text 3构建系统
查看>>
995. Minimum Number of K Consecutive Bit Flips
查看>>
for-loop 与 json.Unmarshal 性能分析概要
查看>>
C++中new的三种使用方法说明
查看>>
爬虫进阶 -- 神级程序员:让你的爬虫就像人类的用户行为!
查看>>
Python中_new_方法详解及使用
查看>>
flutter安装开发环境-问题记录
查看>>
mp4文件如何转换为webm格式
查看>>
如何在线创建数据流图(DFD)?
查看>>
腾讯—最新iOS面试题总结
查看>>
CGI,FASTCGI,PHP-CGI,PHP-FPM 概念
查看>>
DApp引荐机制正式上线 | IOST开发者赏金计划
查看>>