spark算法推荐系统实例

首先,上传u.data和u.item至/home/data文件夹下,并启动spark(spark-shell)。
1、导入数据并查看

val rawUserData=sc.textFile("file:/home/data/u.data")

在这里插入图片描述
2、查看前五条信息,以及userid,itemid,评分信息

textFile.take(5).foreach(println)
rawUserData.map(_.split("\t")(1).toDouble).stats()//查看userid信息
rawUserData.map(_.split("\t")(0).toDouble).stats()//查看itemid信息
rawUserData.map(_.split("\t")(2).toDouble).stats()//查看评分信息

在这里插入图片描述
3、导入ALS和Rating链接库

import org.apache.spark.mllib.recommendation.ALS
import org.apache.spark.mllib.recommendation.Rating

在这里插入图片描述
4、读取rawUserData的前三个字段

val rawRatings=rawUserData.map(_.split("\t").take(3) )

在这里插入图片描述
5、准备ALS训练数据

val ratingsRDD=rawRatings.map{case Array(user,movie,rating)=>Rating(user.toInt,movie.toInt,rating.toDouble)}

在这里插入图片描述
6、使用ALS.train命令进行训练

val model=ALS.train(ratingsRDD,10,10,0.01)

在这里插入图片描述
7、针对用户***推荐前5部电影

model.recommendProducts(196,5).mkString("\n")

在这里插入图片描述
8、查看针对用户196推荐电影1154的评分

model.predict(196,1154)

在这里插入图片描述
9、针对电影958推荐给5个用户

model.recommendUsers(958,5).mkString("\t")

在这里插入图片描述
10、创建电影ID与名称的对照表

val itemRDD=sc.textFile("/home/data/u.item")

在这里插入图片描述

在这里插入图片描述
11、显示电影ID名称对应表的前5条记录

movieTitle.take(5).foreach(println)

在这里插入图片描述
12、查询ID为146的电影名称

movieTitle(146)

在这里插入图片描述
13、显示前5条推荐给用户196的电影名称

model.recommendProducts(196,5).map(rating=>(rating.product,movieTitle(rating.product),rating.rating)).foreach(println)

在这里插入图片描述

  • 7
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spark最好的书之一; 第 1 章从 Hadoop 到 Spark 1. 1 Hadoop一一大数据时代的火种·· 1. 1. 1 大数据的由来 1. 1. 2 Google 解决大数据计算问题的方法 ……................…........... 5 1. 1. 3 Hadoop 的由来与发展………................. .. ......................…. 10 1. 2 Hadoop 的局限性·················…….........….........................……… 12 1. 2. 1 Hadoop 运行机制…….....….........…..................... . ....……. . 13 1. 2. 2 Hadoop 的性能问题……………………........ ......…..... . ...…… . 15 1. 2. 3 针对 Hadoop 的改进………………··························…....... 20 1. 3 大数据技术新星一-Spark …·…………………………………………….. 21 1. 3. 1 Spark 的出现与发展……........…………………... ......………. 21 1. 3. 2 Spark 协议族……………………………………………………… 24 1. 3. 3 Spark 的应用及优势……....... .…………………·· ·······………. 25 第 2 章体验 Spark ……….....……........…··························…………………28 2. 1 安装和使用 Spark ··············……..................………………………….28 2. 1. 1 安装 Spark ·································································· 28 2. 1. 2 了解 Spark 目录结构................ . .. .. ........... ................. .. . .. 31 2. 1. 3 使用 Spark Shell ·· · · · · · · · · ·· · · · · · · · · ······· ····· ··· · ··· · ···· · · · · ·· · · ··· ·· ·· 32 2.2 编写和运行 Spark 程序................................................ ...... ......... 35 2.2. 1 安装 Scala 插件 .... .. ............. ...... ....................... ............ 35 2.2.2 编写 Spark 程序......... ................. .................................. 37 2.2.3 运行 Spark 程序········ ············ · ··········· ·············· ········ ······ 42 2. 3 Spark Web UI ··························· ······························ ··············· 45 2.3. 1 访问实时 Web UI ························································· 45 2.3.2 从实时 UI 查看作业信息、....... .. .................. . ....... ............. 46IV 目录 第 3 章 Spark 原理……………………….................……………………………. 50 3. 1 Spark 工作原理…………………………….......…………………........… 50 3. 2 Spark 架构及运行机制………………….............……………………….. 54 3. 2. 1 Spark 系统架构与节点角色………………………........………. 54 3. 2. 2 Spark 作业执行过程……··…...............…......................... 57 3.2.3 应用初始化…·…………………………………………………….. 59 3.2.4 构建 RDD 有向无环图 ………........……………........……….. 62 3.2.5 RDD 有向无环图拆分……..................................………….. 64 3. 2. 6 Task 调度………………………………………………………...... 68 3. 2. 7 Task 执行…………………………………………………………… 71
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值