基于Spark 的电影推荐系统

2023-11-10

基于大数据的电影推荐系统主要分为两部分:基于历史数据的离线处理和基于实时流的实时处理。离线处理是基于历史数据,实时处理是结合历史数据和实时采集的数据,运用协同过滤算法训练推荐模型,预测各个用户未看电影的评分,为用户推荐评分最高的前10部。系统流程图如图所示:

image.png 

图1 基于大数据的电影推荐系统流程图

首先在网上下载推荐引擎数据集MovieLens,保存在Hbase中,在Hbase数据库中包含了用户表(6040个用户),电影表(3853部电影)以及评分表(用户对电影的百万条数据)。 推荐引擎会读取Hbase中的评分数据 ,并使用基于模型的协同过滤算法-ALS对其进行训练,得到初始的模型,使用这个模型对Hbase中所有用户进行图书推荐(取 top10),并将推荐结果保存在Hbase中,以上阶段为系统初始化阶段。

实时流数据将通过一个程序向kafka推送数据,模拟用户当前在网站上的实时评分行为,在最后使用用户进行观察测试时,程序将会只模拟这个用户的评分行为以便观察推荐系统的实时性。

在系统初始化完成之后,开启实时推荐引擎 ,Spark Streaming对接kafka不断生成的用户行为数据,并和Hbase中的原始数据混合,训练出新的模型,产生推荐结果保存 ,不断地进行流数据的读取、训练和保存推荐结果,直至系统关闭或者无流数据产生 。

将上面的流程代码打包成一个.jar包,在集群平台运行和检测运行结果。首先进入集群平台的Task Scheduler,在任务调度模块执行.jar包, .jar包主要分两部分,一部分是向kafka推送数据,另一部分是结合数据训练推荐模型,产生推荐结果。通过流程定义,上传.jar包,指明要运行的类名,分别运行.jar包的两个程序。

然后进入查询分析器模块,建立Hbase中用户表的hive外部表,通过Hql语句,执行mapreduce任务查询hive外部表来查看hbase中的数据,验证实时推荐结果。

源码下载链接请扫描网站二维码进群免费获取。

image.png

来源:我是码农,转载请保留出处和链接!

本文链接:http://www.54manong.com/?id=1215

'); (window.slotbydup = window.slotbydup || []).push({ id: "u3646208", container: s }); })(); '); (window.slotbydup = window.slotbydup || []).push({ id: "u3646147", container: s }); })();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

基于Spark 的电影推荐系统 的相关文章

  • java调用webservice接口 几种方法

    webservice的 发布一般都是使用WSDL web service descriptive language 文件的样式来发布的 在WSDL文件里面 包含这个webservice暴露在外面可供使用的接口 今天搜索到了非常好的 webs
  • python数据预处理之缺失值的各种填补方式

    如果你觉得文字看着枯燥 可以看配套讲解视频 讲解视频 对于数据挖掘的缺失值的处理 应该是在数据预处理阶段应该首先完成的事 缺失值的处理一般情况下有三种方式 1 删掉缺失值数据 2 不对其进行处理 3 利用插补法对数据进行补充 第一种方式是极
  • 修改 bootargs 方式增加分区(mtd分区和blkdevparts分区)

    1 Linux内核设置分区的两种方式 1 1 内核代码中写死 在内核的平台代码中写死 然后在初始化NandFlash的时候设置 1 2 uboot通过bootargs传递分区表 1 u boot将分区信息 形如 mtdparts xxx b
  • 机器学习之逻辑回归,代码实现(附带sklearn代码,小白版)

    文章目录 前言 一 逻辑回归能够解决什么 二 公式 三 激活函数 四 如何求得w 六 逻辑回归代码实现 五 sklearn demo 总结 前言 虽然名字带有回归 但实际上是一个常用的二分类算法 并且在预测的时候能够提供预测类别的概率 一
  • antd中Form.useForm()使用方式

    这里写自定义目录标题 onRow 表单Form useForm onRow table table record 点击后获取的数据对象 onRow record gt return event获取当前列元素节点 可用 event targe
  • 聚类算法4——DBSCAN密度聚类(算法步骤及matlab代码)

    看了西关书的聚类算法 算法原理很容易明白 接下来就是整理成自己的理解思路 然后一步一步来实现算法 那么就来做吧 DensityClustering算法 概念 从样本密度的角度考察样本之间的可连接性 样本分布的紧密程度刻画聚类结构 术语 核心
  • el-table实现指定列合并

    table传入span method方法可以实现合并行或列 方法的参数是一个对象 里面包含当前行row 当前列column 当前行号rowIndex 当前列号columnIndex四个属性 该函数可以返回一个包含两个元素的数组 第一个元素代
  • Datax-HdfsWriter如何实现支持decimal类型数据写入

    一 问题背景 之前在做Datax数据同步时 发现源端binary decimal等类型的数据无法写入hive字段 看了一下官网文档 DataX HdfsWriter 插件文档 是1 2年前的 当初看过部分源码其实底层hadoop是支持这些类
  • 摸鱼周报年终总结

    今年摸鱼周报的发展超出预期的顺利 离不开各位编辑小伙伴的帮助和读者的支持 非常感谢大家 到了年后最后一周就休刊一期发一个总结吧 今年有很多有趣的事值得再回顾下 编程学习资料点击免费领取 梦开始的地方 最开始的想法 开始写摸鱼周报是因为社群建
  • 华为OD机试 - 字符串变换最小字符串 - (Java 2022Q4 100分)

    目录 一 题目描述 二 输入描述 三 输出描述 四 解题思路 五 Java算法源码 六 效果展示 1 输入 2 输出 华为OD机试 2023B卷题库疯狂收录中 刷题点这里 一 题目描述 给定一个字符串s 最多只能进行一次变换 返回变换后能得
  • 数据分析和可视化必备的几大软件,你用过几个?

    本文主要是面向数据分析初学者 因此分享的基本是一些免编程的可视化工具 详细介绍了7款工具 推荐大家使用 主要是让初学数据分析的朋友知道可视化工具大概有哪些 流行的有哪些 Power BI Power BI是微软开发的商业分析工具 用户可以在
  • 单片机与电脑接口(TTL与RS232电平模拟转换)电路及工作原理分析

    RS232接口概述 RS232接口又称DB9接口 是现在主流的串行通信接口之一 由于RS232接口标准出现较早 难免有不足之处 主要有以下四点 1 接口的信号电平值较高 易损坏接口电路的芯片 又因为与TTL电平不兼容故需使用电平转换电路方能
  • Hibernate缓存机制

    原文地址 http www iteye com topic 249465 缓存是位于应用程序与物理数据源之间 用于临时存放复制数据的内存区域 目的是为了减少应用程序对物理数据源访问的次数 从而提高应用程序的运行性能 Hibernate在查询
  • Pandas必会的方法汇总,用Python做数据分析更加如鱼得水!(附代码)

    用Python做数据分析光是掌握numpy和matplotlib可不够 Pandas是必须要掌握的一个重点 numpy虽然能够帮我们处理处理数值型数据 但是这还不够 很多时候 我们的数据除了数值之外 还有字符串 还有时间序列等 今天来分享一
  • 2022快速计算机视觉EI国际会议汇总

    本文不包含刚举办两三年的国内水会 主要收录了一些或许比较容易中且快速出结果的真正意义上的国际会议 可能存在编辑错误 最终以各会议官网为准 随缘更新 Abbr Name Submission Deadline Notification of
  • 整数在内存中如何存储

    整数在内存中的存储 在计算机内存中 整数一律采用补码的形式来存储 这意味着 当读取整数时还要采用逆向的转换 也就是将补码转换为原码 将补码转换为原码也很简单 先减去 1 再将数值位取反即可 我们先来解以下几个概念 原码 将一个整数转换成二进
  • 刷脸签到系统的设计与实现python+flask+mysql

    刷脸签到系统的设计与实现 语言 工具 html css ajax pyhotn Flask框架 bootstrap框架 SQLAlchemy mysql数据库 介绍 利用Python语言 Flask框架 Dlib库 MySQL数据库等工具设
  • Java线程:线程的调度-守护线程

    本文转载至 http lavasoft blog 51cto com 62575 221845 Java线程 线程的调度 守护线程 守护线程与普通线程写法上基本么啥区别 调用线程对象的方法setDaemon true 则可以将其设置为守护线
  • 贵阳市职称计算机报名时间,贵州贵阳市2013年职称计算机考试报名时间

    一 考试科目 科 目备 注 1中文Windows XP操作系统 2Word 2003中文字处理 3Excel 2003中文电子表格考生任选其一 金山表格2005 4PowerPoint 2003中文演示文稿考生任选其一 金山演示2005 5
  • hping 详解_hping3使用

    简介 hping3是一款免费的数据包生成器和分析器 可用于安全审计 防火墙规则测试 网络测试 端口扫描 性能测试 压力测试 DOS 几乎可以发送任意类型的TCP IP数据包 功能强大但是每次只能向一个IP地址发送数据包 还能够在两个相互包含

随机推荐

  • spring应用从多个properties文件中加载数据的问题

  • arch linux 文档下载_CASTEP的Linux 安装

    CASTEP http www castep org 是一款电子结构软件 可以计算Kohn Sham框架下的平面波DFT 能够完成VASP能够完成的大部分计算 相比于VASP有几个优势 能够完成基本所有VASP能实现的功能和一些VASP不能
  • golang中的随机数rand

    1 math rand 随机数从资源生成 包水平的函数都使用的默认的公共资源 该资源会在程序每次运行时都产生确定的序列 如果需要每次运行产生不同的序列 应使用Seed函数进行初始化 默认资源可以安全的用于多go程并发 关于种子seed 程序
  • nginx实现路由重定向功能 避免服务器出现 404 Not Found

    首先 到服务器上 vue react等项目路由的重定向已解决不了带后缀的访问 这个重定向需要 nginx 来实现 我们先执行 scp r 用户名 如果没设置过就是root 服务器公网地址 etc nginx nginx conf E 拷贝地
  • Java基础最新教程-小白到大神,从api层面到底层原理解抛

    JavaSe JDK JRE JVM是什么 JDK Java Development Kit JRE Java Runtime Environment JVM Java Virtual Machine Java跨平台核心是使用Jvm 在不同
  • Java基础学习之函数式编程Comsumer接口(JDK8)

    前言 从毕业到现在正好三年 高难度的项目做了不少 但是基础这个东西一段时间不接触就会忘得一干二净 话不多说 开始今天的学习 1 Consumer接口 接触过 消费者 生产者 模式的同学 肯定对这个单词不陌生 在java8函数式编程和lamb
  • mcd, lm, VS lx

    LED常识之 mcd lm w的关系 转载自 http 1198 vip blog 163 com blog static 202177117201211624535412 LED 亮度是指发光体 反光体 表面发光 反光 强弱的物理量 人眼
  • Zynq-LWIP上行传输大批量数据方法说明

    此篇是我在学习中做的归纳与总结 其中如果存在版权或知识错误或问题请直接联系我 欢迎留言 PS 本着知识共享的原则 此篇博客可以转载 但请标明出处 目录 1 项目简介 1 1 完成功能 1 1 使用工具 2 LWIP141 DMA上行传输数据
  • web前端学习笔记一

    一 VS Code快捷键 代码格式化 Shift Alt F 向上或向下移动一行 Alt Up或Alt Down 快速复制一行代码 Shift Alt Up或Shift Alt Down 快速替换 Ctrl H 二 标题标签 h1 定义最大
  • C语言 函数 上

    函数的定义 子程序 是一个大型程序中的某部分代码 由一个或多个语句块组成 它负责完成某项特定任务 相较于其他代码 具备相对的独立性 2 库函数 eg 打印函数 printf 字符串拷贝 strcpy 计算n的k次方 pow函数 3 自定义函
  • 前端面试题----第1天

    文章目录 HTML link和 import的区别 CSS 圣杯布局和双飞翼布局 JS 用递归算法实现 数组长度为5且元素的随机数在2 32间不重复的值 HTML link和 import的区别 1 link是HTML标签 import是c
  • 数据链路层以太网帧格式------理解MTU的定义和最大值(1500字节)

    在前面的文章中 我们讨论了IP的包格式 也说过TCP UDP的包格式 无论是TCP还是UDP 最终还是封装成了IP包 我们知道 IP包的最大程度为65535个字节 于是很多初学者会误解 以为这65535字节的IP包数据 是直接被数据链路层套
  • C基础知识总结(全)

    目录 第一个程序hello world说明 计算机中的数据存储 数值型数据的存储 非数值型数据的存储 词法符号 关键字 标识符 数据类型 数据类型的分类 整数类型 浮点类型 实型 小数 空类型 原码 反码 补码 常量 实型常量 字符常量 字
  • 动力节点Java实用小技能,手把手带你生成二维码

    随着互联网的快速发展 二维码逐渐成为了主流 日常生活已经离不开二维码了 它们变得越来越有用 从候车亭 产品包装 家装卖场 汽车到很多网站 都在自己的网页二维码 让人们快速找到它们 随着智能手机的用户量日益增长 二维码的使用正在呈指数上升 让
  • 485集线器

    485集线器ZLAN9480A是一款可通过一路RS485主口扩展出8路RS485从口的工业级隔离型8口RS485集线器 可以有效的实现RS485网络的中继 扩展与隔离 ZLAN9480A的主口端提供隔离型RS485 从口端扩展出8路隔离型R
  • C++基础入门(数据类型)

    数据类型 整型 sizeof关键字 实型 浮点数 字符型 转意字符 字符串 布尔类型 数据的输入 C 规定在创建一个变量或者常量时 必须要指定出相应的数据类型 否则无法给变量分配内存 整型 作用 整型变量表示的是整数类型的数据 C 中能够表
  • FreeSwitch中配置网关的方法

    在VOIP通信系统中 经常要用到网关 那么网关怎么和FreeSwitch在一起配合使用 有如下需求 有一虚拟运营商 即 SIP PROVIDER 提供拨打外线的功能 从该处购买一 SIP 账号 具体配置信息如下 用户名 user 密码 pa
  • 今天这个是mybatis与spring的整合

    今天这个是mybatis与spring的整合 依旧是一个查询的demo 首先是demo的结构 然后是我的jdbc properties jdbc driverClassName com mysql jdbc Driver jdbc url
  • 10-js逆向(数据加密)

    简单的加密 案例一 返来的数据加密 我们对他进行解密 拿到数据 看到返回的数据加密了 还是直接搜索 也可以直接搜索json parse 可以看到了数据在这个里面已经加密 所以下一步 找他的调用栈 可以看到数据被传在了这个里面 直接进行扣js
  • 基于Spark 的电影推荐系统

    基于大数据的电影推荐系统主要分为两部分 基于历史数据的离线处理和基于实时流的实时处理 离线处理是基于历史数据 实时处理是结合历史数据和实时采集的数据 运用协同过滤算法训练推荐模型 预测各个用户未看电影的评分 为用户推荐评分最高的前10部 系