基于Hadoop+Java的地区旅游大数据可视化管理(IDEA+Zookeeper+Hive+HBase+Echarts) 您所在的位置:网站首页 基于hadoop的数据分析和处理 基于Hadoop+Java的地区旅游大数据可视化管理(IDEA+Zookeeper+Hive+HBase+Echarts)

基于Hadoop+Java的地区旅游大数据可视化管理(IDEA+Zookeeper+Hive+HBase+Echarts)

2024-01-03 22:07| 来源: 网络整理| 查看: 265

目录 地区旅游大数据可视化管理 1 最终数据可视化样式 1 绪论 3 研究背景 3 研究现状 4 开发环境 4 数据抓取和清洗 5 相关技术 5 Jsoup 5 数据抓取 5 利用Jsoup抓取旅游网站数据 5 数据清洗 5 清洗无意义数据 7 获取所有酒店信息 7 数据存储 7 相关技术 7 HBase 7 结构介绍 7 存储格式 8 存储酒店数据 8 HBaseUtil工具类设计 8 酒店信息表 10 酒店评论信息表 11 MapReduce程序——统计平均价格 11 MapReduce程序——统计词频 12 数据可视化 14 相关技术 14 Echarts 14 可视化图表设计 14 酒店价格分布图 15 酒店平均价格对比图 15 酒店房型统计图 15 数据可视化展示 16 结语 16 参考文献 17 开发环境 本文用到的开发环境如下: 1.IDEA 2018.3 2.Hadoop 2.7.2 3.Zookeeper 3.4.10 4.Hive 1.2.1 5.HBase 1.3.1 6.Echarts 5.1.1 数据抓取和清洗 相关技术 Jsoup Java中支持的爬虫框架有很多,比如WebMagic、Spider、Jsoup等。我们使用Jsoup来实现一个简单的爬虫程序。 Jsoup拥有十分方便的api来处理html文档,比如参考了DOM对象的文档遍历方法,参考了CSS选择器的用法等等,因此我们可以使用Jsoup快速地掌握爬取页面数据的技巧。 数据抓取 利用Jsoup抓取旅游网站数据 通过Jsoup对网页中有用的数据进行解析,之后我们将得到想要的数据。获取城市所有信息,首先需要获取到城市名称也就是获取所有

标签中的所有a链接的文本。 数据清洗 数据清洗是指发现并纠正数据文件中可识别的错误的最后一道程序,包括检查数据一致性,处理无效值和缺失值等。与问卷审核不同,录入后的数据清理一般是由计算机而不是人工完成。 使用Jsoup获取到的是整个页面的资源,其中包含html的代码,也就会包含无意义的数据,需将它进行清洗。 获取所有 标签。 Elements all_dd = pinyin_filter.getElementsByTag(“dd”); 获取 标签下的所有a标签。 String cityID = StringUtil.getNumbers(element.attr(“href”)); 获取所有a标签中的文本并添加到HotelCity类中,HotelCity实体类信息

package F_ChartsData; import Util.Connected; import Util.HBaseUtil; import org.apache.hadoop.hbase.TableName; import org.apache.hadoop.hbase.client.*; import org.apache.hadoop.hbase.util.Bytes; import java.io.IOException; import java.util.HashMap; import java.util.List; import java.util.Map; public class chartsData { /** * 获取前number个澳门酒店名称和价格 * @param number 指定获取几个酒店的数据 * @return * @throws IOException */ public static Map dataOfAoMen(int number) throws IOException { List databyCName = HBaseUtil.getDatabyCName("澳门", "t_city_hotels_info", number); Map dataByColumn = HBaseUtil.getDataByColumn(databyCName, "hotel_info", "name", "hotel_info", "price"); return dataByColumn; } /** * 获取前number个香港酒店名称和价格 * @param number 指定获取几个酒店的数据 * @return * @throws IOException */ public static Map dataOfHongKong(int number) throws IOException { List databyCName = HBaseUtil.getDatabyCName("香港", "t_city_hotels_info", number); Map dataByColumn = HBaseUtil.getDataByColumn(databyCName, "hotel_info", "name", "hotel_info", "price"); return dataByColumn; } /** * 获取各城市的酒店平均价格 * @return * @throws Exception */ public static Map dataOfPrice() throws Exception { Connection conn = Connected.getHbase(); Table table = conn.getTable(TableName.valueOf("AveragePrice")); HashMap soult = new HashMap(); Scan scan = new Scan(); ResultScanner scanner = table.getScanner(scan); for (Result result : scanner) { String k = Bytes.toString(result.getRow()); String v = Bytes.toString(result.getValue(Bytes.toBytes("info"), Bytes.toBytes("price"))); soult.put(k,v); } table.close(); conn.close(); return soult; } }

在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有