# spark_recommendation
基于机器学习(Spark2.0+MongoDB)实现的协同过滤推荐系统-定时更新推荐结果
此项目包含完整的代码, 只需通过命令行输入:mvn clean package 便可生成可执行的包
具体操作:
1. 打包完成后,将包上传至Spark2.0的环境中。
2. 可通过: standAlone或local或yarn方式来执行,本例以local的方式来提交JOB,如下:
离线推荐
./spark-submit --class com.sh.wcc.OfflineRecommendation --master local --driver-memory 16g --executor-memory 4g --executor-cores 1 --num-executors 6 /data/spark-jars/recommendation-1.0-SNAPSHOT.jar mongodb.ip mongodb.dbName mongodb.user mongodb.password
推荐:
./spark-submit --master local --driver-memory 16g --executor-memory 3g --executor-cores 1 --num-executors 5 --class com.sh.wcc.Recommendation /data/spark-jars/recommendation-1.0-SNAPSHOT.jar mongodb.ip mongodb.dbName mongodb.user mongodb.password
训练模型:
./spark-submit --class com.sh.wcc.TrainModel --master local --driver-memory 8g --executor-memory 4g --executor-cores 1 --num-executors 5 /data/spark-jars/recommendation-1.0-SNAPSHOT.jar mongodb://user:pwd@ip:27017/db hdfs://hadoop01:8020/trained-models/RecommendModel
导入离线样本数据: (Example)
./spark-submit --class com.sh.wcc.ImportRawData --master local --driver-memory 8g --executor-memory 4g --executor-cores 1 --num-executors 5 /data/spark-jars/recommendation-1.0-SNAPSHOT.jar hdfs://hadoop01:8020/spark-sample-data/wcc/2017_1.csv mongodb://user:pwd@ip:27017/db
通过Kafka处理日志消息
./spark-submit --master local --driver-memory 4g --executor-memory 2g --executor-cores 1 --class com.sh.wcc.ProcessLogData /data/spark/recommendation/target/recommendation-1.0-SNAPSHOT.jar localhost:9092 ProcessLogData mongodb://user:pwd@ip:27017/db
推存使用离线推荐功能, 通过创进Crontab(计划任务)来定时更新推荐结果,这其中汲及批量更新Mongodbo数据表的问题,但已完美解决,项目有一个操作MongoDB的工具类(Scala版本),可以直接创建和修改表、数据和索引,非常好用,具体大家可以好好研究一下,有问题,可以和我来探讨,可加我QQ:35294983。
没有合适的资源?快使用搜索试试~ 我知道了~
基于机器学习(Spark2.0+MongoDB)实现的协同过滤推荐系统.zip
共12个文件
scala:9个
xml:1个
md:1个
需积分: 5 0 下载量 139 浏览量
2024-05-19
21:56:21
上传
评论
收藏 23KB ZIP 举报
温馨提示
协同过滤算法(Collaborative Filtering)是一种经典的推荐算法,其基本原理是“协同大家的反馈、评价和意见,一起对海量的信息进行过滤,从中筛选出用户可能感兴趣的信息”。它主要依赖于用户和物品之间的行为关系进行推荐。 协同过滤算法主要分为两类: 基于物品的协同过滤算法:给用户推荐与他之前喜欢的物品相似的物品。 基于用户的协同过滤算法:给用户推荐与他兴趣相似的用户喜欢的物品。 协同过滤算法的优点包括: 无需事先对商品或用户进行分类或标注,适用于各种类型的数据。 算法简单易懂,容易实现和部署。 推荐结果准确性较高,能够为用户提供个性化的推荐服务。 然而,协同过滤算法也存在一些缺点: 对数据量和数据质量要求较高,需要大量的历史数据和较高的数据质量。 容易受到“冷启动”问题的影响,即对新用户或新商品的推荐效果较差。 存在“同质化”问题,即推荐结果容易出现重复或相似的情况。 协同过滤算法在多个场景中有广泛的应用,如电商推荐系统、社交网络推荐和视频推荐系统等。在这些场景中,协同过滤算法可以根据用户的历史行为数据,推荐与用户兴趣相似的商品、用户或内容,从而提高用户的购买转化率、活跃度和社交体验。 未来,协同过滤算法的发展方向可能是结合其他推荐算法形成混合推荐系统,以充分发挥各算法的优势。
资源推荐
资源详情
资源评论
收起资源包目录
基于机器学习(Spark2.0+MongoDB)实现的协同过滤推荐系统.zip (12个子文件)
content
pom.xml 7KB
src
main
scala
com
spark
recommendation
ProcessLogData.scala 6KB
utils
TimeUtil.scala 724B
ExtMatrixFactorizationModelHelper.scala 5KB
MongoClientUtil.scala 3KB
Recommendation.scala 5KB
ImportRawData.scala 7KB
OfflineRecommendation.scala 13KB
ImportData.scala 7KB
TrainModel.scala 5KB
recommendation.iml 22KB
README.md 2KB
共 12 条
- 1
资源评论
生瓜蛋子
- 粉丝: 3828
- 资源: 5678
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功