其他分享
首页 > 其他分享> > 入门大数据---Spark车辆监控项目

入门大数据---Spark车辆监控项目

作者:互联网

一、项目简介

这是一个车辆监控项目。主要实现了三个功能:

1.计算每一个区域车流量最多的前3条道路。

2.计算道路转换率

3.实时统计道路拥堵情况(当前时间,卡口编号,车辆总数,速度总数,平均速度)

二、项目结构

├─TrafficBySparkAndKafka
├─data
└─src
├─main
│ ├─java
│ │ └─vip
│ │ ├─producedate2hive(模拟数据到文件和Hive)
│ │ ├─shuai7boy
│ │ │ └─trafficTemp
│ │ │ ├─areaRoadFlow(每个区域top3道路速度统计。道路转换率。)
│ │ │ ├─conf (获取配置文件帮助类)
│ │ │ ├─constant (接口静态类,防止硬编码)
│ │ │ ├─dao
│ │ │ │ ├─factory (工厂类)
│ │ │ │ └─impl (接口实现类)
│ │ │ ├─domain (属性定义类)
│ │ │ ├─jdbc (jdbc帮助类)
│ │ │ ├─rtmroad(实时统计道路拥堵情况)
│ │ │ ├─skynet
│ │ │ └─util (帮助类)
│ │ └─spark
│ │ └─spark
│ │ └─test (模拟实时数据)
│ ├─resources
│ └─scala
│ └─top
│ └─shuai7boy
│ └─trafficTemp
│ └─areaRoadFlow (利用scala和java互调用,实现top3道路速度统计)

└─test
└─java

三、数据源

数据源类型:

monitor_flow_action(每个摄像头的监控数据)

当天日期 卡口编号 摄像头编号 车牌号 拍摄时间 车速 道路编号 区域编号

2020-05-08  0001   34287  京M80025    2020-05-08 05:35:58    57 25 03
2020-05-08 0005   99132  京M80025    2020-05-08 05:51:28    149    50 04

monitor_camera_info(卡口和摄像头对应编号)

0006    00443
0006   25745
0006   98681
0006   36400

存储介质:

如果在本地运行的话,这里读取的是本地文件。

如果在集群运行,对于批处理读取的是Hive,对于流处理这里读取Kafka。

四、数据转换流程

1.计算每一个区域车流量最多的前3条道路。

用到的技术:Hive,Spark SQL,临时表,MySql,JDBC,join,map,RDD转换DataFrame。

2.计算道路转换率

用到的技术:mapToPair,groupByKey,flatMapToPair(进来一辆车,出去多个对应路段信息),reduceByKey。

3.实时统计道路拥堵情况(根据车辆和车速判断)

用到的技术:map,mapToPair,mapValues(仅仅针对value进行map,(key,(value,1))格式数据),reduceByKeyAndWindow。

项目开源地址

系列传送门

标签:卡口,入门,05,获取,道路,车流量,监控,Spark,路段
来源: https://www.cnblogs.com/shun7man/p/12852067.html