# Hadoop旅游景点及周边商城推荐系统 **Repository Path**: guangduan/Hadoop-based-Recommendation-System-for-Tourist-Attractions-and-Surrounding-Shopping-Malls ## Basic Information - **Project Name**: Hadoop旅游景点及周边商城推荐系统 - **Description**: 基于Hadoop旅游景点及周边商城推荐系统采用Spring Boot、Vue.js、MySQL、Vue,Hadoop、hdfs、Scrapy爬虫【携程旅行网站】等技术,通过大数据技术数据分析、Echarts可视化大屏展示,构建了一个功能全面的Web应用 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-09-20 - **Last Updated**: 2025-09-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: hadoop, hdfs, SpringBoot, 旅游景点数据分析可视化系统, MySQL ## README ## 基于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图片展示 ![输入图片说明](00.png) ![输入图片说明](01.png) ![输入图片说明](02.png) ![输入图片说明](03.png) ![输入图片说明](06.png) ![输入图片说明](07.png) ![输入图片说明](08.png) ![输入图片说明](09.png) ![输入图片说明](09-1.png) ![输入图片说明](010.png) ## 04 代码展示 ` /** *交流学习vx18484646674 * 协同算法(基于用户收藏的协同算法) */ @RequestMapping("/autoSort2") public R autoSort2(@RequestParam Map 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 storeups = storeupService.selectList(new EntityWrapper().eq("type", 1).eq("tablename", "ningbosight")); // 创建协同过滤对象 UserBasedCollaborativeFiltering filter = new UserBasedCollaborativeFiltering(); // 为指定用户推荐物品 String targetUser = userId; int numRecommendations = limit; List recommendations = filter.recommendItems(storeups, "userid", "refid", userId, numRecommendations); // 输出推荐结果 System.out.println("Recommendations for " + targetUser + ":"); for (String item : recommendations) { System.out.println(item); } EntityWrapper ew = new EntityWrapper(); 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 pageList = (List)page.getList(); if(recommendations!=null && recommendations.size()>0 && pageList.size()(); 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); }`