基于Spark的推荐系统设计及实现阅读2

大数据处理领域的框架有很多。从计算的角度看,主要有MapReduce框架(属于Hadoop)生态系统和Spark框架【计算效率优秀。从存储角度来看,主要还是用Hadoop生态环境中的HDFS框架

Spark分布式计算框架:基于内存的集群计算系统。解决MapReduce磁盘读写的开销问题。吸引很多数据研究人员。逐渐形成了自己的生态系统:以Spark为基础,上层包括Spark SQL,MLib, Spark StreamingGraphX

Spark的核心概念弹性分布式储存(Resilient Distributed Datasets, RDD), 是Spark对分布式内存进行的抽象,使用者可以像操作本地数据集一样操作RDD。

WordCount程序在Spark编程模型下的RDD转换:----很关键。

 Spark运行架构:Spark有三种主要的分布式部署模式standalone模式----自带完整服务,可以独立部署在一个集群中而不需要依赖其他的资源管理系统、Spark On YARN模式、Spark On Mesos模式。 假设使用standalone模式,A为Master节点,B、C、D、E为Worker节点,Master节点上面就有主进程,负责作业DAG图的生成,以及作业的调度,这个进程称为Driver进程。而作业真正执行的Worker上就会创建作业运行进程,称为Exector进程。

Spark上层生态系统:是一个优秀的计算框架,上层生态系统包括Spark SQL, Spark Streaming, MLlib, GraphX等。

1)Spark SQL. 数据仓库查询工具

2)Spark Streaming 是基于Spark的分布式流式处理框架

3)MLlib:MLlib工程就是Spark环境下的机器学习解决方案:主要包括了SVM, DT, NBayesian, K-means, SVD等。

4)GraphX: GraphX是Spark提供的分布式图计算框架。


Spark与MapReduce的比较

1)MapReduce需要频繁的读写磁盘,Spark是基于内存的,都是在内存进行,性能是MapReduce的100倍以上。

2)在编程模型方面,MapReduce只提供了map,reduce两种算子,而Spark提供了多达几十种操作算子,分Transformations(map,filter,flatMap,sample,groupByKey,reduceByKey)和Actions(count,collect,reduce,take)两大类.------由于这些高层API已经实现了很多常用的数据操作,所以Spark程序可以非常简洁地实现非常强大的功能。



HDFS分布式存储框架Hadoop Distributed File System 是Apache Hadoop中的核心子项目,用于存储和管理海量数据,是大数据生态的核心框架

HDFS特点:1)处理超大文件,不适合处理大量小文件。2)流式访问数据 3)运行在廉价的集群上 4)不适合低延迟访问



Parquet文件类型-----一种新型列式存储的文件类型。MapReduce和Spark都能处理Parquet文件,Hive SparkSQL都能直接查询以Parquet文件为基础的数据仓库。 这一特性使得Parquet文件可以替代传统的文本文件类型。


推荐系统综述:例如电商领域,推荐系统实现的功能就是根据已有的信息,如物品信息,用户信息,用户行为信息等,将相应的物品推荐给用户。常见的推荐任务有两种,评分预测Top-N推荐。


推荐算法:

1)协同过滤:Collaborative Filtering, CF算法最为经典,核心思想是利用群体智慧进行推荐。协同过滤又分为基于用户的协同过滤(User-CF), 基于物品的协同过滤(Item-CF)等。皮尔逊积矩相关系数---评分预测。jaccard公式--Top-N推荐。 Item-CF首先是由行为发现相近物品(物以类聚)---余弦相似度


在实际环境下,一般会使用混合推荐系统(Hybirdization Recommender System)


推荐系统评价指标:1)用户满意度 2)预测准确度 3)覆盖率






















  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
电影推荐系统是基于用户历史行为和兴趣特征,为用户提供个性化的电影推荐服务。本文将介绍基于Spark的电影推荐系统设计实现。 1. 数据获取与预处理 首先,我们需要获取电影数据集。可以从MovieLens等网站下载公开的电影评分数据集。数据集包括用户对电影的评分、电影信息等。对于电影信息,我们需要将其转换为向量表示,以便后续计算。可以使用word2vec等算法将电影信息转换为向量。 2. 特征工程 在进行推荐之前,需要对数据进行特征工程。电影推荐系统通常使用协同过滤算法,该算法需要构建用户-电影评分矩阵。我们可以使用Spark的MLlib库中的ALS算法来构建矩阵,并进行模型训练。 3. 模型训练与优化 使用ALS算法构建用户-电影评分矩阵后,我们需要对模型进行训练和优化。可以使用Spark的MLlib库中的交叉验证等技术来优化模型参数,提高模型的推荐效果。 4. 推荐服务 完成模型训练后,我们可以使用Spark Streaming构建推荐服务,为用户提供个性化的电影推荐服务。推荐服务需要实现用户的登录、电影推荐、推荐结果展示等功能。 5. 性能优化 在实际应用中,电影推荐系统需要处理海量的数据。为了提高推荐效率,我们可以使用Spark的分布式计算能力,将计算任务分布到多个节点上并行处理。此外,我们还可以使用Spark的缓存技术,将常用数据缓存到内存中,提高计算效率。 总之,基于Spark的电影推荐系统设计实现需要进行数据获取与预处理、特征工程、模型训练与优化、推荐服务和性能优化等步骤。通过以上步骤,我们可以构建出高效、准确的电影推荐系统,为用户提供更好的推荐服务。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值