当前位置:   article > 正文

计算机毕业设计PySpark+Hadoop+Hive机票航班数据分析可视化大屏 机票预测 航班预测系统 机票爬虫 飞机票推荐系统 大数据毕业设计 机器学习 深度学习 知识图谱 人工智能_郑州经贸学院毕业设计

郑州经贸学院毕业设计

毕业设计

开题报告

题    目:

基于Hadoop的飞机航班预测系统设计与实现

院    系:

大数据与人工智能学院

专    业:

数据科学与大数据技术

班    级:

数科201班

学    号:

202001074140

学生姓名:

张健

指导教师:

马义想


            郑州经贸学院毕业设计开题报告

  

基于Hadoop+Hive的机票价格预测分析与可视化

姓名

张健

院系

大数据与人工智能学院

专业班级

数科201

学号

202001074140

1.选题背景和意义

(1)选题背景

在旅行规划中,机票价格一直是旅客关注的重点。机票价格的波动不仅受季节、航线、航空公司等因素的影响,还受到市场供求关系、经济形势等因素的影响。因此,通过对机票价格进行预测分析,可以帮助旅客选择更合适的出行时间和机票购买策略,从而节省旅行成本。

(2)意义

提高乘客购票决策:基于Hadoop的飞机票价格预测能够提供乘客准确的价格预测信息,帮助他们选择合适的购票时间和最优的价格,从而节省成本。

改善航空公司运营管理:航空公司可以准确预测票价趋势和需求变化,从而制定更具竞争力和市场响应性的票价策略。这有助于提高运营效率、增加收益和优化航线安排。

实现可持续发展:航空业是全球排放最高的行业之一。通过预测飞机票价格,并能够更好地安排航班和座位利用率,航空公司可以减少空座位和航班的浪费,从而降低碳排放和资源浪费,实现可持续发展。

推动大数据技术应用:基于Hadoop+Hive的机票价格预测分析与可视化,可以推动大数据技术在航空业的应用和发展。这对于促进航空公司数字化转型,提升数据分析和预测能力具有重要意义。

通过基于Hadoop+Hive的机票价格预测分析与可视化,可以为乘客提供更好的购票体验,为航空公司提供决策支持,促进航空业的可持续发展,并推动大数据技术在航空业的应用。

2.本选题在国内外的研究状况及发展趋势

(1)国内外的发展状况

 在国内,随着大数据技术的逐渐普及和应用,基于Hadoop+Hive的机票价格预测分析与可视化的研究日益受到重视。一些研究者通过收集和处理大规模的机票价格数据,利用Hadoop+Hive进行机票价格分析和预测。例如,可以通过Hive进行机票价格数据的清洗、聚合和转换,再利用Hadoop进行机票价格模型的建立和预测。同时,也有研究者将预测结果进行可视化展示,使用图表、地图等方式呈现机票价格的变化趋势和规律。

在国外,基于Hadoop+Hive的机票价格预测分析与可视化的研究也取得了一定的进展。一些研究机构和航空公司利用大数据技术进行机票价格分析和预测,并取得了一些重要的研究成果。例如,他们通过收集和处理全球范围内的机票价格数据,利用Hadoop+Hive进行机票价格模型的建立和预测分析。同时,也在可视化方面进行了一些探索,将预测结果以图表、地图等形式展示。

(2)发展趋势

    未来,基于Hadoop+Hive的机票价格预测分析与可视化的研究将继续发展。随着大数据技术的不断演进和应用,机票价格数据的规模和复杂性将进一步增加,需要更加强大和高效的数据处理和分析能力。因此,研究者将继续深化对Hadoop+Hive的应用,探索更加有效的机票价格分析和预测方法。同时,也将更加注重可视化技术的应用,提供更直观和易于理解的预测结果展示方式。

(3)参考文献

[1]卢敏,贾玉璇.基于多任务学习的机票价格预测模型[J].计算机工程与设计,2023

[2]王双,徐瑶,韩建云等.基于机器学习算法的机票价格预测研究[J].民航学报,2022.

[3]姚悦.基于多预测模型的机票价格预测[D].东南大学,2021.

[4]单文煜,吴垠,陈鹏.基于机器学习的机票价格预测研究[J].现代计算机,2020.

[5]王楠,张显,李冬梅.基于大数据机器学习的航班价格预测研究[J].黑龙江大学自然科学学报,2019.

[6]郭才森.近十年国内机票价格市场化改革进程分析与展望[J].民航管理,2021,(04):57-62.

[7]陈建蓉.基于统计分析的航空货运价格预测[D].电子科技大学,2020.

[8]鞠铁鑫.基于统计分析的航班价格变化差异性问题研究[D].黑龙江大学,2018.

[9]Huang T ,Chen C ,Schwartz Z .Do I book at exactly the right time? Airfare forecast accuracy across three price-prediction platforms[J].Journal of Revenue and Pricing Management,2019,18(4):281-290.

[10]Huang F ,Huang H .Event ticket price prediction with deep neural network on spatial-temporal sparse data[C]//[出版者不详],2020:

3.主要设计内容

本项目主要包括以下几个部分:

    数据收集和清洗: 从各个航空公司和第三方机票平台收集大规模的机票价格数据,包括航班信息、日期、价格等。对收集到的数据进行清洗,处理缺失值、异常值和重复值等,确保数据的准确性和完整性。

数据存储和管理: 利用Hadoop的分布式文件系统(HDFS)存储机票价格数据,并使用Hive进行数据管理和查询。将机票价格数据通过Hive表的方式进行组织和存储,方便后续的数据分析和预测。

数据分析和建模: 使用Hive进行数据分析,通过SQL语言对机票价格数据进行聚合、统计和计算,提取有用的特征。基于机票价格的历史数据,可以使用统计模型、时间序列模型或机器学习算法构建机票价格预测模型。选择合适的预测模型,根据历史数据进行训练和验证,得到预测模型的参数和准确度指标。

价格预测和可视化: 利用构建好的机票价格预测模型对未来时间段的机票价格进行预测。根据预测结果,可以将机票价格的变化趋势以可视化的方式进行展示,例如折线图、柱状图、地图等。通过可视化图表,使预测结果更加直观和易于理解,帮助旅客了解机票价格的变化规律,做出更好的出行决策。

用户界面设计:通过echarts等方式,将预测结果以图表、列表等形式直观地展现给用户,方便用户了解和比较不同的飞机票价格。

4.基本设计思路及技术关键点

(1)基本设计思路

将大数据处理,充分利用Hadoop和hive的分布式计算和存储能力,首先,收集并整理历史机票价格数据;然后,基于这些数据,构建预测模型;最后,利用已训练的模型对未来机票价格进行预测和分析,然后通过echarts生成可视化大屏。这些步骤可以帮助航空业务决策者预测未来的机票价格趋势,从而做出合理的定价和市场策略。

  1. 技术关键点

Hadoop通过分布式文件系统HDFS和分布式计算框架MapReduce,实现了大规模数据的存储和处理。通过合理的数据切分和分布式计算,可以充分利用集群中的计算资源,提高数据处理的效率和吞吐量。他采用数据冗余和容错机制,保证数据的可靠性和冗余备份。数据被切分成多个块,并存储在集群中的多个节点上,一旦某个节点出现故障,仍然可以通过其他副本进行数据的访问和计算。他的核心编程模型是MapReduce,它将数据处理任务分解为Map和Reduce两个阶段。开发人员可以通过编写Map和Reduce函数,实现数据的分析、处理和计算。此外,Hadoop还支持更高级的编程接口如Spark、Hive和Pig等,提供更丰富的数据处理能力和编程模型。

DrissionPage提供了简洁友好的API和丰富的文档,使得开发者可以快速上手并构建自己的爬虫程序。内置了自动化处理的功能,如动态加载、表单提交、验证码识别等,可以处理各种复杂的网页操作,省去了手动模拟的麻烦。支持多线程爬取,可以同时处理多个页面,提高爬取效率。支持将爬取的数据保存到各种格式的文件中,如CSV、Excel、数据库等,方便后续的数据分析和处理。提供了完善的日志记录和错误处理机制,便于定位和解决爬取过程中的问题。

使用Flask框架创建Web应用程序,搭建后端服务器,处理前端请求和逻辑处理。Flask提供了路由、模板引擎、HTTP请求处理等功能,可以处理前端与后端的交互。选择合适的Echarts图表类型和外观样式,根据设计需求和数据特点进行配置。利用Echarts提供的丰富的配置选项,对图表进行个性化定制,包括图表的主题、颜色、动画效果等。

PyFlink能够处理无界流式数据,将数据以连续、实时的方式进行处理和分析。它支持事件时间和处理时间两种处理方式,并具备窗口、水印等功能,可以实现对流数据的实时处理和聚合。PyFlink借助Apache Flink的分布式计算引擎,能够在大规模集群上进行并行计算和处理。通过将作业划分为多个任务,并利用网络通信进行数据交换和计算,实现高效的分布式计算。PyFlink提供了灵活的状态管理机制,可以对流式数据进行状态的存储和更新。PyFlink采用事件驱动的编程模型,开发者可以通过定义事件处理函数和操作符来处理输入的事件流。这样的模型能够快速响应事件的到达,并进行实时的处理和计算。

    

  1. 预期成果

能够准确预测飞机票价格、生成可视化页面,满足用户的需求。具体的预期成果包括

1.高性能的数据处理:利用Hadoop+Hive的分布式计算框架和数据存储技术,预期成果应具有高性能的数据处理能力,能够处理和分析大规模的机票价格数据,提供快速高效的预测和可视化结果。

2.准确的预测结果:通过使用Hadoop+Hive的大数据处理和分析能力,预期成果将提供准确的机票价格预测结果。这将帮助用户在选择出行时间和购买机票时更加明智和高效,从而节省旅行成本。

3.可视化展示:利用可视化技术将机票价格的预测结果以直观的图表、地图等形式展示给用户,使用户更好地理解机票价格的变化趋势和规律,帮助他们选择合适的出行时间和机票购买策略。

6.指导教师意见及建议

签字:            

202311 月 30

核心算法代码分享如下:

  1. #使用PySpark完成部分机票指标分析
  2. from pyspark.sql.types import StringType, StructField, IntegerType, DoubleType, StructType
  3. from pyspark.sql.functions import col
  4. from pyspark.sql import SparkSession
  5. csv_format = 'com.databricks.spark.csv'
  6. mysql_url = "jdbc:mysql://bigdata:3306/Flink_Fliggy_Flight"
  7. prop = {'user': 'root', 'password': '123456', 'driver': "com.mysql.jdbc.Driver"}
  8. # 1.创建SparkSession
  9. spark = SparkSession.builder.appName("tables01_task").getOrCreate()
  10. fields = [
  11. StructField("start_city", StringType(), True),
  12. StructField("end_city", StringType(), True),
  13. StructField("stime", StringType(), True),
  14. StructField("airline_name", StringType(), True),
  15. StructField("flight_info", StringType(), True),
  16. StructField("flight_type1", StringType(), True),
  17. StructField("flight_type2", StringType(), True),
  18. StructField("setup_time", StringType(), True),
  19. StructField("arr_time", StringType(), True),
  20. StructField("start_airport", StringType(), True),
  21. StructField("arr_airport", StringType(), True),
  22. StructField("ontime_rate", IntegerType(), True),
  23. StructField("flight_total_time", StringType(), True),
  24. StructField("price", IntegerType(), True),
  25. StructField("price_desc", StringType(), True),
  26. StructField("flight_company", StringType(), True),
  27. StructField("flight_type3", StringType(), True),
  28. StructField("setup_time_math", DoubleType(), True),
  29. StructField("arr_time_math", DoubleType(), True),
  30. StructField("arr_time2", StringType(), True),
  31. StructField("start_airport_simple", StringType(), True),
  32. StructField("arr_airport_simple", StringType(), True),
  33. StructField("flight_total_time_math", IntegerType(), True),
  34. StructField("price_desc_math", DoubleType(), True),
  35. ]
  36. schema= StructType(fields)
  37. # 2.读取本地文件路径
  38. # flights_data = spark.read.format(csv_format).options( ending='utf-8').load(
  39. # "hdfs://bigdata:9000/flink_fliggy_flight/flight/hdfs_flights.csv")
  40. flights_data=spark.read.option("header", "false").schema(schema).csv("hdfs://bigdata:9000/flink_fliggy_flight/flight/hdfs_flights.csv")
  41. # 3.创建临时表
  42. flights_data.createOrReplaceTempView("ods_flight")
  43. # 4.工作经验与薪水的关系
  44. tables01_sql='''
  45. select distinct airline_name,price_desc_math,price_desc,stime
  46. from ods_flight
  47. order by stime desc,price_desc_math asc
  48. limit 30
  49. '''
  50. spark.sql(tables01_sql).write.jdbc(mysql_url, 'tables01', 'overwrite', prop)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/562430
推荐阅读
相关标签
  

闽ICP备14008679号