ToB企服应用市场:ToB评测及商务社交产业平台

标题: 基于spark的农产品价格数据分析猜测体系设计与实现 [打印本页]

作者: 盛世宏图    时间: 2024-11-17 13:41
标题: 基于spark的农产品价格数据分析猜测体系设计与实现
摘  要

  

  比年来随着大数据技能与农产品产业的深度融合和应用,极大的促进了部分间的数据共享,推动传统农产品业转型升级和现代农产品业高质量发展。然而目前仍存在农产品业发展中大数据应用水平不够深入、大量农产品数据流失浪费等问题,农产品业信息化发展不平衡不充实,影响到传统农产品业的转型。因此本文基于上述问题设计农产品数据分析体系。
  本体系通过获取农产品数据,对其数据分析来得到二次数据,为用户提供数据展示,从而有用解决上述问题 ,具有一定的应用价值。本体系重要包含了数据采集、数据分析和数据展示三个大板块,数据采集模块为体系提供原始的用户数据,数据分析模块通过定制的计谋得到分析得到价值信息,并提供给数据展示模块来前端显示。别的体系还提供了体系管理模块,为体系的注册用户提供个性化使勤奋能。本体系使用Scrapy技能来举行数据采集过程,并使用PySpark举行数据分析,数据库方面采用的是MySQL,别的体系还提供了体系管理模块,为体系的注册用户提供个性化使勤奋能,为用户提供有用的信息支持和操作简化。
  
  关键字: 农产品价格分析;Spark;Scrapy爬虫;数据可视化
  
  
  
  
  
  
  
  

  

  
Design and implementation of agricultural product price data analysis and prediction system based on spark

  Abstract

  In recent years, with the deep integration and application of big data technology and the tourism industry, data sharing between departments has been greatly promoted, and the transformation and upgrading of traditional tourism and the high-quality development of modern tourism have been promoted. However, at present, there are still problems such as the application of big data in tourism development is not deep enough, a large number of tourism big data is lost and wasted, and the unbalanced and insufficient development of tourism information affects the transformation of traditional tourism. By obtaining tourism data and analyzing its data, secondary data is obtained to provide users with data display. The system mainly includes data collection, data analysis and data display three large sections, the data collection module provides the original user data for the system, the data analysis module obtains value information through customized strategy analysis, and provides the data display module to the front-end display. In addition, the system also provides a system management module to provide personalized use functions for registered users of the system.
  The system uses Python for data collection process, and uses Spark for data analysis, the database uses MySQL, and the system also provides a system management module to provide personalized use functions for registered users of the system, providing users with effective information support and operation simplification.
  
  Keywords:Agricultural product data analysis; Spark; Scrapy crawler; Data visualization
  
  

  

  
目  录

  
  
   摘  要
  Design and implementation of agricultural product price data analysis and prediction system based on spark
  Abstract
  1  绪论
  1.1  研究配景及意义
  1.2  国内外研究现状
  1.3  论文布局
  2  开发技能
  2.1  PySpark
  2.2  Scrapy爬虫技能
  2.3  Mysql
  2.4 Flask
  3  需求分析
  3.1  可行性分析
  3.1.1  经济可行性
  3.1.2  技能可行性
  3.1.3  运行可行性
  3.1.4  时间可行性
  3.2  功能需求分析
  3.2.1  总体流程
  3.2.2  数据采集
  3.2.3  数据分析
  3.3  非功能需求分析
  4  体系设计
  4.1  总体设计
  4.2 数据采集
  4.3  数据分析
  5.  体系实现
  5.1  大数据环境搭建
  5.1.1  部署HDFS
  5.1.2  部署Spark集群
  5.2  数据可视化
  5.2.1  登录
  5.2.2  农产品数据管理
  5.2.3  农产品价格猜测
  5.3  农产品大屏分析
  5.4  本章小结
  6  总结
  6.1  结论
  6.2  猜测
  参 考 文 献
  致  谢
  
  
   
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

1  绪论

1.1  研究配景及意义

在绿色蔬菜类农产品市场中,绿色蔬菜类农产品的价格受到生产本钱、市场供应等因素的影响。而在差别的季节,差别地域的绿色蔬菜类农产品受到的影响水平也是差别的。这使得同种绿色蔬菜类农产品在差别地域的市场价格相差较大,此时绿色蔬菜类农产品的市场信息尤为重要。对于平凡农民、卖家等受农产品价格波动影响较大的人群来说,获取及时有用的农产品市场信息可以尽早推测价格波动,提前举行防范,并做出相应决策,制止巨大损失。当然,如果得到的途径与方式相对封闭,那么在价格波动时我们将毫无预备,损失会相当大。大数据技能可以借助Spark平分布式架构,处理海量无布局数据,寻求大数据的深层数据价值和数据关系,充实使用数据挖掘和分析的结果,资助决策者做出理性科学的决策。绿色蔬菜类农产品市场中有着巨大的数据,通过大数据技能,我们可以获取农产品的洞察和新价值,并尽快发现市场规律,把握市场形势。
农产品价格数据分析猜测体系的研究配景和意义重要表如今以下几个方面:农产品市场信息不对称:传统农产品贩卖存在信息不对称的问题,生产者和买家通常难以获取到全面、及时的市场信息,导致交易服从低下,价格波动大。建立贩卖与分析平台可以整合各种市场信息,资助农民和买家更好地相识市场情况,进步交易服从,降低交易本钱。
农产品质量安全监管:比年来,农产品质量安全备受关注,消费者对农产品质量和安全性的关注度不停增加。贩卖与分析平台可以通过追溯技能和数据分析,实现对农产品生产、加工、流通全过程的监管,进步农产品质量安全水平,增强消费者信心。
农产品供需匹配:农产品市场供需关系错综复杂,传统的供应链管理方式通常无法有用匹配供需关系,导致资源浪费和库存积存。贩卖与分析平台可以通过数据分析和猜测算法,实现对农产品供需情况的及时监测和猜测,资助农产品生产者和买家做出更加准确的决策,促进供需匹配,优化资源设置。
因此,建立农产品价格数据分析猜测体系具有重要的现实意义和社会心义,可以促进农产品市场的康健发展,进步农产品交易服从,保障农产品质量安全,促进农业产业升级和可持续发展。

1.2  国内外研究现状

农产品业发展的质量也是社会各界正在深入探讨的问题,国内研究大部分都是从宏观角度分析农产品业发展的质量及变迁,早期研究将重点放在--些特定的农产品企业服务质量评估上面,不能更完整地表现农产品业这个特殊产业的综合性.和多样性的特征,有学者从农产品业综合性角度对发展质量举行研究,分别从产品质量、环境质量、要素质量、运行质量和产业增长方式5个方面,采用定量方法评价了农产品业综合发展质量评价,也有学者从农产品者、农产品企业层面建农产品业综合发展质量评价体系举行分析,发现政府主导型农产品发展模式服从低下,地域间产品同质化严峻,农产品业发展不光要注重经济、社会量,更要突出农产品者地位,只有转变传统生产方式才气进步发展质量。有学者指出,加快大数据应用与农产品业的融合发展,完善农产品信息共享和农产品产品服务水平,能够有用实现农产品.业层级跃迁,推动农产品产业转型升级,促进我国农产品业高效化、高度化和绿色化发展。
有学者通过时间序列数据研究信息技能的发展对北京市农产品经济发展的贡献度,分析发现信息技能高投入一定推动农产品经济增长,也就是说农产品业从传统的劳动资本驱动转酿成了技能驱动,并指出应大力进步大数据应用在农产品管理中的使用,建成集多功能于一体的农产品产业运行监测调度中心,深化大数据应用与农产品业融合,能够进步农产品业部分之间的协作服从,大大进步发展质量,刘怡君采用灰色关联分析方法对天津市农产品经济的重要影响因素举行比力分析发现,天津发展农产品业大数据应用基础设施搭建比力完善,极大地促进了天津农产品业发展,应继续深化大数据应用与农产品业的融合实现高质量发展;付业勤等以为,将最新科技结果比方大数据应用与农产品业深度融合形成农产品大数据,是助力现代农产品业实现信息化发展的根本。
国外对大数据应用影响农产品业发展研究中,Koo和Xiang等以为大数据、人工智能等科技能够促使很多产业共同受益,能够资助活化农产品资源,进步农产品经济效益;Buhalis等以为通过定性分析发现加大大数据应用发展中技能投入,能够促进游产业发展革新;Ritchie等以加拿大亚伯达省为研究主体,提出发展农产品产业中农产品目的地营销,应采用大数据应用技能构建营销体系的方案,也有人通太过析埃及农产品商业部分发展情况发现,数据应用与农产品产业融合能够显著进步农产品营销结果,大大增加农产品业收入,实现农产品业转型升级。[1]
总体来说,国内外研究农产品业创新发展和大数据技能发展的文献有很多,本文对这些文献举行了分析、归纳和使用。文章对农产品数据举行分析,在此基础上通过可视化分析大数据应用与农产品业综合发展水平
1.3  论文布局

本文分为六章,重要内容如下:
第一章:绪论。论述研究配景与研究意义,对国内外大数据应用对农产品业发展影响举行分析。
第二章:开发技能。介绍设计中须要用到的开发技能,Spark,Python,Mysql数据库,Flask以及数据可视化工具。
第三章:需求分析。 本章重要介绍到场本体系中的重要用户构成,并逐一分析各个差别用的需求,并关联到具体的功能和构造上,总结需求,为设计做预备。
第四章:体系设计。通过需求分析的结果来构建体系的布局,并分析体系的基础框架,同时还包罗了体系的数据库设计等。
第五章:体系实现。 通过现实的代码编写来实现体系。
第六章:总结。总结做的工作以及存在的缺点。

2  开发技能

2.1  PySpark

PySpark 是 Apache Spark 的 Python API,它为 Python 开发者提供了与 Spark 集群举行交互的方式。Apache Spark 是一个快速、通用、可扩展的大数据处理引擎,具有内存盘算和容错特性,适用于大规模数据处理任务。下面是 PySpark 技能的介绍:
RDD(Resilient Distributed Dataset): RDD 是 Spark 中最基本的抽象,代表了分布式的数据集合。通过 RDD,可以将数据分布式存储在集群中的多个节点上,并对其举行并行操作。PySpark 提供了对 RDD 的 Python 接口,可以通过简单的 API 对 RDD 举行操作。
DataFrame 和 Dataset: DataFrame 和 Dataset 是 Spark 中更高级的抽象,提供了类似于关系型数据库的表格布局。DataFrame 是基于 RDD 构建的,提供了更多的数据操作功能和优化,而 Dataset 则是更加范例安全的 DataFrame。PySpark 提供了 DataFrame 和 Dataset 的 Python 接口,可以通过类似于 SQL 的语法举行数据处理和查询。
Spark SQL: Spark SQL 是 Spark 提供的用于布局化数据处理的模块,可以通过 SQL 或 DataFrame API 举行数据查询和分析。PySpark 提供了与 Spark SQL 交互的 Python 接口,可以使用 SQL 查询语言或 DataFrame API 对布局化数据举行操作。
机器学习库(MLlib): MLlib 是 Spark 提供的机器学习库,包含了多种常用的机器学习算法和工具,如分类、回归、聚类、降维等。PySpark 提供了 MLlib 的 Python 接口,可以通过简单的 API 举行机器学习模型的训练和猜测。
流处理(Spark Streaming): Spark 提供了流处理模块,可以实现及时数据处理和分析。PySpark 也提供了与 Spark Streaming 交互的 Python 接口,可以通过简单的 API 举行及时数据处理。
图处理(GraphX): GraphX 是 Spark 提供的用于图数据处理的模块,可以举行图数据的构建、遍历和算法盘算。PySpark 提供了 GraphX 的 Python 接口,可以通过简单的 API 举行图数据处理。
总的来说,PySpark 提供了丰富的功能和机动的接口,可以用于处理各种范例的大规模数据,并支持多种数据处理和分析任务。通过 PySpark,Python 开发者可以使用 Spark 强盛的分布式盘算能力,实现高效的数据处理和分析。

2.2  Scrapy爬虫技能

爬虫技能的一般流程是:
:(1)明确须要爬取的目标、内容;爬取哪个网站的哪些内容,每个网站的URL是不一样的,须要正确地输入,比如,百度的URL是: http://www.baidu.com; 京东的URL是: http://www.jd.com;须要爬取哪些内容,得正确地书写; (2)用户向服务器发送请求; - -般须要加请求的报头,比如加:“User-Agent",以免被误以为是非法客户的访问; (3)服务器返回给用户的数据;服务器会给用户发回许许多多的数据,包含有价值的数据和无价值的数据等等; (4)分析、提取须要的数据;从服务器返回的数据中,分析和提取有价值的数据,过滤无价值的数据; (5)用文件、数据库或其它方式存储相应的数据;把分析和提取的有价值数据用差别的形式生存以备用。
Python也提供了许多框架来实现爬虫技能,比如Portia、 Crawley、 Scrapy等等。其中Scrapy框架 ,包含下载器 、Spider中间件 (Spider Middlewares)、下 载器中间件等多个组件。同时,Scrapy框架也包含了许多作用差别的相对应的命令,比如使用Scrapy下载器下载的URL并且将内容输出的fetch命令。
但是,由于爬虫的过程中,许多服务器资源会被消耗掉,服务器的稳定性也会受到很大影响,基于种种原因,爬虫是不受网站所有者的接待。为了能够顺遂地实现爬虫技能,须要先相识网站所有者所订定的限制步伐反爬虫,然后,再订定相应的步伐来规避反爬虫。比如,可以通过访问频度的调解来规避反爬虫,这种方法重要是针对有些网站设置的访问频度阈值,爬虫时设置的阈值应该适当,可以比网站设置的访问频度阈值要略低,如许爬取的稳定性会比力好、爬取的服从也会比力高。另有其它规避反爬虫的方法:署理IP、应对网站布局变化等等。Python提供了许多库来实现爬虫技能,比如:BeautifulSoup库、rurlib库、requests 库和pycurl库等等。其中,用得比力多的是requests库,包含以下常用的函数: request、get、 head、 post、 put、 patch、delete等等。
Scarpy爬虫架构图如图2-2所示:

图2-2  架构图

爬虫调度器:总体和谐其它几个模块的工作。
URL管理器:负责管理URL,维护已经爬取的URL集合和未爬取的URL集合。
网页下载器:对未爬取的URL下载。
网页分析器:分析已下载的html,并从中提取新的URL交给URL管理器,数据交给存储器处理。
数据存储器:将html分析出来的数据举行存取。
2.3  Mysql

 MySQL是目前IT行业最流行的开放源代码的数据库管理体系,同时它也是一个支持多线程高并发多用户的关系型数据库管理体系。MySQL之所以受到业界人士的青睐,重要是因为其具有以下几方面优点:
(1)开放源代码
MySQL最强盛的上风之一在于它是一个开放源代码的数据库管理体系。开源的特点是给予了用户根据自己须要修改DBMS的自由。
(2) 跨平台
MySQL可以在差别的操作体系下运行,简单地说,MySQL可以支持Windows体系、UNIX体系、Linux体系等多种操作体系平台。
(3) 轻量级
MySQL的核心程序完全采用多线程编程,这些线程都是轻量级的进程,它在机动地为用户提供服务的同时,又不会占用过多的体系资源。因此MySQL能够更快速、高效的处理数据。
(4) 本钱低
MySQL分为社区版和企业版,社区版是完全免费的,而企业版是收费的。免费的社区版支持多种数据范例和正规的SQL查询语言,能够对数据举行各种查询、增加、删除、修改等操作,所以一般情况下社区版就可以满意开发需求了,而对数据库可靠性要求比力高的企业可以选择企业版。
总体来说,MySQL是一款开源的、免费的、轻量级的关系型数据库,其具有体积小、速度快、本钱低、开放源码等优点,其发展前景是无可限量的。
MySQL的执行流程如图2-3所示:

图2-3  Mysql的执行流程

分析器:在分析器中对 SQL 语句举行语法分析、语义分析。
优化器:在优化器中会确定 SQL 语句的执行路径,比如是根据全表检索,还是根据索引来检索等。
执行器:在执行之前须要判定该用户是否具备权限,如果具备权限就执行SQL查询并返回结果。
在 MySQL8.0 以下的版本,如果设置了查询缓存,这时会将查询结果举行缓存。
2.4 Flask

 Flask 是使用 Python 语言开发的一款免费而且开源的 Web 应用框架。由于 Python 语言的跨平台性,所以 Flask 同样支持 Windows、Linux 和 Mac 体系。
相对于 Python 的其他 Web 框架,Flask 的功能是最完整的,Flask 定义了服务发布、路由映射、模板编程、数据处理的一整套功能。这也意味着 Flask 模块之间紧密耦合。
Flask 的重要特点如下:
完善的文档:经过 10 余年的发展和完善,Flask 官方提供了完善的在线文档,为开发者解决问题提供支持。
集成 ORM 组件:Flask 的 Model 层自带数据库 ORM 组件,为操作差别范例的数据库提供了统一的方式。
URL 映射技能:Flask 使用正则表达式管理URL映射,因此给开发者带来了极高的机动性。
后台管理体系:开发者只需通过简单的几行设置和代码就可以实现完整的后台数据管理Web控制台。
错误信息提示:在开发调试过程中如果出现运行异常,Flask 可以提供非常完整的错误信息资助开发者定位问题。

3  需求分析

3.1  可行性分析

3.1.1  经济可行性

开发体系所涉及到的资料,一般是在图书馆查阅,或是在网上举行查找收集。所须要的一些应用软件也都是在网上可以免费下载的,因此,开发本钱是险些为零。但是开发出来的体系,还是具有高服从,低本钱,较高质量的。所以,从经济可行性的角度,该体系符合尺度。
3.1.2  技能可行性

技能可行性是思量在现有的技能条件下,能否顺遂完成开发任务。以及判定现有的软硬件设置是否能满意开发的需求。而本体系采用的是本地机器开发框架,并非非常困难,所以在技能上是绝对可行的。别的,盘算机硬件设置是完全符合发展的须要。
3.1.3  运行可行性

当前盘算机信息化的知识已经非常普及了,如今的操作人员也都是对体系环境有很强的适应性,各类操作人员大都是有过培训增补的,因此完全不影响构造布局,所以在运行上也是可行的。
3.1.4  时间可行性

从时间上看,在大四的末了一个学期,在练习工作与完成毕设两件大事相交叉的时间里,结合之前学习的相干知识,并开发体系,时间上是有点紧,但是也不是完全没可能实现,通过这段时间的积极功能基本实现。
3.2  功能需求分析

3.2.1  总体流程

农产品网站数据采集及分析体系通过对主流的农产品信息网站的数据举行抓取,通过定向分析之后,得到了有价值的数据并呈现到前端页面中,同时将具体的业务映射到体系功能中,构成一个完整的体系。本流程中重要分为三部分,数据采集和预处理、数据分析和数据可视化,三部分相互关联,其中,数据采集得到的有用数据大部分是须要通过数据分析过程的,小部分的数据能直接的使用到前端页面中。通过三部分的关联,就可以完整的显现出体系的基本布局。

图3-1  数据架构图

3.2.2  数据采集

数据采集流程是体系中所有的数据信息的起始,通过这个流程来获取所有的数据信息,交付给数据分析部分末了呈现到页面上。因此,数据采集部分的功能非常重要,具体如图3-2所示。

图3-2 数据采集用例

从图3.2.2可以看出,数据采集的重要任务是抓取工作,包含了四个部分,分别为抓取入口管理、初始数据管理、抓取任务管理和抓取规则管理: 一、抓取入口管理是针对一些特定的网站,须要对抓取的入口网页举行分析,同时对入口方法举行总结,当入口发生变化的时间,须要及时的举行更换和调解,保证体系的抓取流程能一直流通, 获取更大量的数据信息;二、初始数据管理,初始数据包含了数据提交和数据转换,这对应着差别的数据信息,数据提交的是可以直接举行数据呈现的信息,包罗了一些不须要更换的,维护性不强的信息,如景点的介绍信息或者是都会的形貌信息等,别的一部分就是须要通过数据分析模块举行分析得到的二次甚至是多次数据,这些数据就须要通过数据转换之后才气举行提交;三、抓取任务管理,当体系中有抓取任务的时间,就须要对任务举行管理,其中包含了任务启动、任务停止和任务变更,这些都是对应着体系的数据需求,当须要差别范例的数据信息的时间,体系中就会提来获取抓取任务,举行数据的抓取;四、抓取规则管理,针对特定的网站,其中所包含的数据字段都是特定的,但是也会随着差别的时间而发生变化,此时,须要根据变化的时间举行更换,对抓取规则举行更换,保证抓取的数据字段不会发生紊乱。
3.2.3  数据分析

数据分析部分是紧接着数据采集和预处理之后的部分,在这个部分,须要相识所抓取的数据所包含的内容,也就是数据的定位和所须要分析的价值是哪些,当明确了这些问题之后,就可以根据对应的数据信息举行分析,采用差别的分析方法来得到价值信息。
3.3  非功能需求分析

非功能性需求不是用户现实提出来的,而且纵观这个体系,为了使用户有良好的使用性和用户体验,并把它作为一个优秀的软件而继续使用的一种重要的因素,因此非功能需求的分析是不可或缺的。
相应时间是用户最为关注的一个指标,当用户点击了所须要的功能后,体系反馈的显示信息如果不能在有用反映时间内出现就会导致用户对体系产生讨厌和抵触。因此,体系相应时间很重要,本体系指定的体系相应时间为5秒以内,保证体系的功能反应最慢不凌驾5秒钟。
重要是体系在整个运行周期里都须要与所有的客户端保持高效连接,并且在用户发出了功能需求的时间,体系在举行事务交互或者数据查找的时间不会出现死锁的情况,保证体系的所有功能都能正常的运行。
让用户使用起来更加便捷和顺畅是设计体系的基础,因此,无论是在设计体系的功能,还是在举行功能的逻辑衔接的时间都须要思量到体系的功能布局,不要让用户在使用过程中,违背正常的使用规则,让一个业务操作可以按照惯常的方式来完成,并可以适当的使用提示信息,方便用户的功能选择和使用,进步体系功能的实用性。
体系在设计完成之后,须要对体系举行运维,维护功能都是依赖于体系的基础性设计,因此,布局设计上就须要思量到后期调解时的方便。别的体系在举行升级的时间,不须要让用户端举行复杂的操作,简化用户操作,进步运维的高效性。
4  体系设计

4.1  总体设计

在任何信息体系当中有价值的数据都是必不可少的重要部分,如何通过手上
的资源获取得到有价值的数据便是开发体系。起首须要思量的问题根据体系的功能设计数据获取和处理的流程以及实在现方法都已经基本上确定获取和处理流程。农产品数据分析体系是将数据采集、数据分析和数据可视化融合为一体的分析体系,下面体系的功能布局图,如图4-1所示。

图4-1  体系架构图

从图4-1可以发现,流程中重要分为三部分,数据采集和预处理、数据分析和数据可视化,三部分相互关联,其中,数据采集得到的有用数据大部分是须要通过数据分析过程的,小部分的数据能直接的使用到前端页面中,比方具体的景点信息和机场信息等,这些不须要进一步分析,直接通报给数据库提供给前端页面的使用;而别的一部分就须要使用到数据分析过程,通过数据分析之后的价值信息可以通过图表或者是文本形式显现给用户页面。通过三部分的关联,就可以完整的显现出体系的基本布局。
4.2 数据采集

这个项目我们的重要目的是爬取农产品网站网的农产品数据信息,下面形貌本文爬虫工程重要设计步骤。
如表4-1所示为修改后的setting文件重要内容,本设计重要修改三项内容,第一个是不遵照机器人协议,第二个是下载间隙,由于下面的程序要下载多个页面,所以须要给一个间隙(不给也可以,只是很轻易被侦测到),第三个是请求头,添加一个User-Agent。
(3) 确认要提取的数据,item 项
item定义你要提取的内容(定义数据布局),比如我提取的内容为重庆农产品信息可视化的所在都会和景点农产品详情,于是须要在items类中新建对应的实体类,并须要设置相应的字段取出对应的数据。Field 方法现实上的做法是创建一个字典,给字典添加一个建,暂时不赋值,等待提取数据后再赋值。
表4-1  爬虫代码

headers = {b'Accept': b'application/json, text/javascript, */*; q=0.01', b'Accept-Encoding': b'gzip, deflate', b'Accept-Language': b'zh-CN,zh;q=0.9,ja;q=0.8,ru;q=0.7', b'Cache-Control': b'no-cache', b'Connection': b'keep-alive', b'Content-Length': b'270', b'Content-Type': b'application/x-www-form-urlencoded; charset=UTF-8', b'Cookie': b'insert_cookie=27508778', b'Host': b'nc.mofcom.gov.cn', b'Origin': b'http://nc.mofcom.gov.cn', b'Pragma': b'no-cache', b'Referer': b'http://nc.mofcom.gov.cn/jghq/marketDetail?eudId=45233', b'User-Agent': b'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36', b'X-Requested-With': b'XMLHttpRequest'}


citys = {'安徽': '340000', '北京': '110000', '福建': '350000', '甘肃': '620000', '广东': '440000', '广西': '450000', '贵州': '520000', '海南': '460000', '河北': '130000', '河南': '410000', '黑龙江': '230000', '湖北': '420000', '湖南': '430000', '吉林': '220000', '江苏': '320000', '江西': '360000', '辽宁': '210000', '内蒙古': '150000', '宁夏': '640000', '青海': '630000', '山东': '370000', '山西': '140000', '陕西': '610000', '上海': '310000', '四川': '510000', '天津': '120000', '西藏': '540000', '新疆': '650000', '云南': '530000', '浙江': '330000', '重庆': '500000'}

for city,value in citys.items():
    url = 'http://nc.mofcom.gov.cn/jghq/marketList'
    m = 'province={}&city=&isprod_mark=&par_craft_index=&pageNo=1'.format(value)
    h = requests.post(url=url, data=m, headers=headers)
    print(h.json())
    for resu in h.json()['result'][:1]:
        EUD_NAME = resu['EUD_NAME']
        print(EUD_NAME)
        ID = resu['ID']
        CONTENT = resu['CONTENT']
        m1 = 'pageNo={}&craftName=&craftIndex=&eudName={}&queryDateType=0&timeRange=&sortColumns=%5B%7B%22column%22%3A%22GET_P_DATE%22%2C%22ordername%22%3A%22asc%22%7D%5D'
        url2 = 'http://nc.mofcom.gov.cn/jghq/marketDetail'
        for i in range(1,7):
            h1 = requests.post(url=url2, data=m1.format(i,parse.quote(EUD_NAME)), headers=headers)
            print(h1.json())
            for resu in h1.json()['result']:
                if not models.XinXi.query.filter(and_(models.XinXi.日期==time.strftime('%Y-%m-%d', time.localtime(resu['GET_P_DATE'] // 1000)),
                                                      models.XinXi.详情=='http://nc.mofcom.gov.cn/jghq/marketDetail?eudId={}'.format(ID),
                                                      models.XinXi.产品==resu['CRAFT_NAME']
                                                      )).all():
                    models.db.session.add(
                        models.XinXi(
                            日期=time.strftime('%Y-%m-%d', time.localtime(resu['GET_P_DATE'] // 1000)),
                            产品=resu['CRAFT_NAME'],
                            价格=resu['AG_PRICE'],
                            市场=resu['EUD_NAME'],
                            省份=city,
                            详情='http://nc.mofcom.gov.cn/jghq/marketDetail?eudId={}'.format(ID),
                            介绍=CONTENT
                        )
                    )
                    models.db.session.commit()

4.3  数据分析

数据分析是针对数据采集模块中得到的数据信息举行定向分析的过程,这个功能重要包罗了舆图分析、农产品农产品分析、农产品温度分析、农产品季节占比和农产品好评分析,舆图分析根据对一个都会的所有用户向天下各地农产品的人数做出分析,代码中的文件路径替换为你现实的数据文件路径。这段代码起首创建了一个 SparkSession 对象,然后使用 spark.read.csv() 方法读取 CSV 文件,将其转换为 DataFrame。接着,我们展示了数据的布局和前几行内容,并使用 DataFrame 的聚合函数盘算了平均价格、最高价格和最低价格。末了,我们制止了 SparkSession。 具体数据分析核心代码如下所示。
表4-1  PySpark分析代码

from pyspark.sql import SparkSessionfrom pyspark.sql.functions import avg, min, max
# 创建 SparkSession
spark = SparkSession.builder \
    .appName("AgriPriceAnalysis") \
    .getOrCreate()
# 读取 CSV 文件,假设文件路径为 'agri_prices.csv'
df = spark.read.csv('agri_prices.csv', header=True, inferSchema=True)
# 查察数据布局
df.printSchema()
# 显示数据前几行
df.show()
# 盘算平均价格
avg_price = df.select(avg("price")).first()[0]print("Average Price:", avg_price)
# 盘算最高价格
max_price = df.select(max("price")).first()[0]print("Maximum Price:", max_price)
# 盘算最低价格
min_price = df.select(min("price")).first()[0]print("Minimum Price:", min_price)
# 制止 SparkSession
spark.stop()

5.  体系实现

5.1  大数据环境搭建

5.1.1  部署HDFS

(1)在master服务器上确定存在hadoop安装目录
[root@master ~]# ls  /usr/cstor/hadoop
(2)设置JDK安装目录
编辑文件“/usr/cstor/hadoop/etc/hadoop/hadoop-env.sh”,找到如下一行:
export JAVA_HOME=${JAVA_HOME}
将这行内容修改为:
export JAVA_HOME=/usr/local/jdk1.7.0_79/
(3) 指定HDFS主节点
编辑文件“/usr/cstor/hadoop/etc/hadoop/core-site.xml”,将如下内容嵌入此文件里末了两行的<configuration></configuration>标签之间:
<property>
  <name>hadoop.tmp.dir</name>
  <value>/usr/cstor/hadoop/cloud</value>
</property>
<property>
  <name>fs.defaultFS</name>
  <value>hdfs://master:8020</value>
</property>
(4) 在master服务器上格式化主节点:
[root@master ~]# hdfs  namenode  -format
统一启动HDFS:
[root@master ~]#cd /usr/cstor/hadoop
[root@master hadoop]# sbin/start-dfs.sh
(5) 通过查察进程的方式验证HDFS启动成功
[root@master sbin]#  jps #jps查察java进程
若启动成功,会看到类似的如下信息:
6208 NameNode
6862 Jps
6462 SecondaryNameNode

图5-1  Hadoop启动成功结果图


5.1.2  部署Spark集群

(1) 在master上操作:确定存在spark。
[root@master ~]# ls /usr/cstor
spark/
[root@master ~]#
在master机上操作:进入/usr/cstor目录中。
[root@master ~]# cd /usr/cstor
[root@master cstor]#
进入设置文件目录/usr/cstor/spark/conf, 先拷贝并修改slave.templae为slave。
[root@master ~]# cd /usr/cstor/spark/conf
[root@master cstor]# cp  slaves.template slaves
(2) 在spark-conf.sh中加入JAVA_HOME。
[root@master cstor]# vim /usr/cstor/spark/sbin/spark-config.sh
加入以下内容
export JAVA_HOME=/usr/local/jdk1.7.0_79
(3) 启动Spark集群。
[root@master local]# /usr/cstor/spark/sbin/start-all.sh


图5-2  Spark启动成功结果图


5.2  数据可视化

5.2.1  登录

用户登录时须要在登录界面输入用户名、密码举行身份认证,要求必须是表单认证、校验。其设置文件中设置了相应的Realm 类,当用户登录体系举行身份认证和权限控制时。具体流程如时序图如5-3所示。

图5-3  登录界面

5.2.2  农产品数据管理

如果用户要查察农产品的信息,就须要进入到农产品的管理页面中,添加农产品的相干信息,并且要留意输入正确的信息,输入的农产品记录与数据库的记录不能辩论。添加农产品会有农产品的详细信息,当然用户也可以对农产品信息举行删除。结果如图5-4所示。

图5-4  农产品管理界面

5.2.3  农产品价格猜测

用户输入用户名和密码可以登录到体系中,在价格猜测界面中能够猜测价格的信息,价格猜测界面如图5-5所示。

图5-5 价格猜测管理

5.3  农产品大屏分析

体系通过对差别范例的农产品数量和均价举行统计,盘算,在前端界面渲染结果,终极农产品大数据展示看板如图5-6所示,图中内容展示的是农产品数量的分布情况和农产品均价的情况。

图5-6  天下农产品大屏分析

5.4  本章小结

本章重要分析了基于大数据的农产品信息可视化分析体系开发过程中使用到的技能和具体的实现步骤,这其中重要介绍了基于Spark框架的农产品信息可视化大数据分析体系的搭建环境和开发步骤,包罗程序中的一些数据库设置等。前端页面采用的是Echarts和html实现。
6  总结

6.1  结论

本文从整体框架出发,对农产品数据分析体系举行了设计和实施。同时,为更好的完成此次的结业设计和论文,我们也相识到很多的程序和程序代码。该农产品数据分析体系具有以下优点:
(1)这个农产品数据分析体系是以Flask开放源码体系布局为基础的,它的核心理念是分层,把所有的工程分别为差别的品级,分层的概念不光可以简化业务过程的逻辑,降低了冗余的冗余,还可以促进工程具有更强的移植性。
(2)一个农产品数据分析体系理制度定义了很多共同的控制单元,所有的单元都要包含一个共同的控制单元,如果在各个单元的代码中都有一个共同的控制单元,那么这个单元就会给人一种代码多余的感觉,如许就可以将所有的控制单元分开。
(3)在先前的实施体系的基础上,采用分页技能来完成多个页面的显示。
6.2  猜测

比年来,我国的农产品数据分析体系已具有相当大的发展空间,只要能够扩大规模,做好相干的相干业务,其发展前景不可低估。该体系具有良好的视觉结果、运行稳定、易于维修等特点。不外,因为自己的编程水平,这套体系还是须要完善的。
(1)付出方式,当前的农产品数据分析体系采用的是一种虚拟付出方式,可以通过付出宝的付出接口举行付出。
(2)保举服务,在登录后,向用户提供有关的体系信息。
(3)界面美化,可以按照 CSS样式来美化用户的界面。





参 考 文 献

[1] 苏照军.基于组合模型的农产品物价猜测体系设计与实现[D].中国科学院大学(中国科学院沈阳盘算技能研究所),2019.
[2] 朱勉茂.农产品市场价格猜测预警体系研究-以广东省猪肉市场为例[D].华南农业大学,2020.
[3] 南京绿色科技研究院有限公司.天下农产品价格监测猜测体系[C]//中国畜牧兽医学会信息技能分会第十届学术研讨会.中国畜牧兽医学会信息技能分会, 2015.
[4] 徐鑫洲,马开平.基于体系动力学的我国大豆价格猜测分析[J].大豆科学, 2018, 37(5):7..
[5] 许杞刚.基于改进KNN-BPNN算法的山东省农产品价格猜测模型[D].济南大学,2015.
[6] 林建辉.基于GPS的用于农业的智能体系:CN201510192860.4[P].CN104778610A[2023-11-29].
[7] 宋丹丹.浅析数据分析在农产品价格猜测中的应用[J].南方农业, 2020, 14(29):2..
[8] 王长松.我国农产品价格猜测模型的甄选[D].江西财经大学,2016.
[9] 陈旭唐卫红张向飞潘家铭杨娟邵芳.上海农产品价格监测与分析猜测体系构建[J].上海农业学报, 2018, 034(004):115-120.
[10] 陈旭,唐卫红,张向飞,等.上海农产品价格监测与分析猜测体系构建[J].上海农业学报, 2018, 34(4):6.
[11] 杨雄钢.基于web的农产品市场价格分析与猜测信息体系设计与实现[J].农家顾问, 2018(17):2..

致  谢


时间过的飞快,我的大门生涯也即将结束,通过前期的知识储备和论文的撰写,让我明确了做好一件事所须要的不光仅是方法,另有耐心,最重要的是得到各人的资助,在此,我要感谢所有资助过我的人。
起首,我要感谢我的导师,从论文定题开始到论文的不停修改,导师都给了我很多的指导和资助,在这个过程,我成长的很快,也从一开始的不停犯错到后来的不停总结,了 解了程序开发的基本规范,明确了数据分析的意义和价值,清晰了论文撰写的严谨和科研的认真态度,导师是我的榜样,他的一言一行都在影响着我,让我在以后的人生道路中不停积聚,不停前行。
其次,我也要感谢宿舍里的同窗,固然宿舍里的人来自差别的地域,她们的经历也差别,但是在共同的学习和生活中,她们不光相互资助,还相互资助,相互资助。我们共同面对并解决了许多问题,这些都使我感到暖和。
末了,我要感谢我的家人,我的修业过程都是在家人的支持下举行的,没有他们的付出,我不能顺遂的完成学业,在此,感谢他们的无私奉献。


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4