计算机大数据毕设项目——Hadoop的宁波旅游景点及周边商城推荐系统数据分析可视化的实现与设计(Springboot-Vue-Mysql,Hadoop-Hdfs,Scrapy爬虫,数据预测可视化大屏)
·
基于Hadoop的宁波旅游景点及周边商城推荐系统
基于大数据技术的旅游景点推荐数据分析可视化系统
前言介绍
本文基于Hadoop的宁波旅游推荐周边商城实现与设计采用Spring Boot、Vue.js、MySQL、Vue,Hadoop等技术,构建了一个功能全面的Web应用。该系统实现了用户注册与登录、用户个人信息管理、商品信息,宁波景点记录等功能模块,为用户提供个性化的景点和商品推荐服务。管理员可以通过系统进行用户信息管理和景点信息商品信息等管理,并且可以通过数据分析大屏查看系统景点商品的数据统计分析。此外,Python爬虫技术用于采集最新的景点数据,确保推荐内容的时效性和准确性。
系统通过整合前后端技术,提供了高效的数据处理和用户体验。Hadoop集群负责存储和处理大规模景点数据。系统的模块化设计使得各功能相互独立又紧密协作,提升了系统的可扩展性和维护性。用户能够方便地浏览和选择适合自己景点和商品,管理员则可以灵活地管理用户信息和景点商品信息,确保系统的正常运行。
01开发环境
1.1Java 技术
1.2Spring Boot 框架
1.3Hadoop,hdfs
1.4Scrapy爬虫
1.5MySQL数据库
1.6B/S 结构
1.7Vue.js 技术
1.8基于用户收藏的协同算法
02系统功能亮点
亮点(爬虫【携程旅行网站】、基于用户收藏的协同算法、数据预测、Echarts可视化)
1、数据管理:爬虫信息列表展示。
2、数据存储:mysql数据库。
3、可视化分析:各种数据分析统计后图表大屏展示
4、数据分析:根据hadoop大数据技术进行数据分析
03图片展示










04 代码展示
/**
* 协同算法(基于用户收藏的协同算法)(交流学习+vx:S20231025S )
*/
@RequestMapping("/autoSort2")
public R autoSort2(@RequestParam Map<String, Object> params,NingbosightEntity ningbosight, HttpServletRequest request){
String userId = request.getSession().getAttribute("userId").toString();
Integer limit = params.get("limit")==null?10:Integer.parseInt(params.get("limit").toString());
List<StoreupEntity> storeups = storeupService.selectList(new EntityWrapper<StoreupEntity>().eq("type", 1).eq("tablename", "ningbosight"));
// 创建协同过滤对象
UserBasedCollaborativeFiltering filter = new UserBasedCollaborativeFiltering();
// 为指定用户推荐物品
String targetUser = userId;
int numRecommendations = limit;
List<String> recommendations = filter.recommendItems(storeups, "userid", "refid", userId, numRecommendations);
// 输出推荐结果
System.out.println("Recommendations for " + targetUser + ":");
for (String item : recommendations) {
System.out.println(item);
}
EntityWrapper<NingbosightEntity> ew = new EntityWrapper<NingbosightEntity>();
ew.in("id", String.join(",", recommendations));
if(recommendations!=null && recommendations.size()>0 && recommendations.size()>0) {
ew.last("order by FIELD(id, "+"'"+String.join("','", recommendations)+"'"+")");
}
// 根据协同结果查询结果并返回
PageUtils page = ningbosightService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, ningbosight), params), params));;
List<NingbosightEntity> pageList = (List<NingbosightEntity>)page.getList();
if(recommendations!=null && recommendations.size()>0 && pageList.size()<limit) {
int toAddNum = limit-pageList.size();
ew = new EntityWrapper<NingbosightEntity>();
ew.notIn("id", recommendations);
ew.orderBy("id", false);
ew.last("limit "+toAddNum);
pageList.addAll(ningbosightService.selectList(ew));
} else if(pageList.size()>limit) {
pageList = pageList.subList(0, limit);
}
page.setList(pageList);
return R.ok().put("data", page);
}
更多推荐
所有评论(0)