基于spark的出租车数据处理与分析

时间:2022-08-12 05:31:02

基于spark的出租车数据处理与分析

摘要:随着云时代的来临,大数据概念在容量、价值等方面都有了更广的扩展和延伸,数据的处理和分析面临着新的挑战。本文研究了基于spark处理出租车GPS数据的方法。本文的研究,主要是提取出租车数据进行司机收入量化排序。相比在hadoop平台处理数据,通过实际的测试比较,Spark平台更具有灵活性,速度更快,能够满足各类数据处理分析需求。

关键词:大数据;云计算;hadoop; spark

0 引言

计算机技术与互联网技术的飞速发展,使得人们的生活方式发生了翻天覆地的变化。各类电子信息产品在方便了人们工作与生活的同时,也使得人们不得不面对日益增长的海量数据信息处理的难题,这些数据数量庞大、结构复杂、类型各异。随着GPS感知设备的发展,车辆、动物和人的移动轨迹数据量急剧增加,例如陕西省西安市一天的出租车数据量可达2GB,庞大的数据量和复杂的时空信息特征为人们提供有用的信息提出了挑战。近年来比较流行的hadoop对数据处理有了很大的提高,但速度相对较慢,并且缺乏灵活性,在此背景下,本文研究基于spark处理出租车GPS数据实现了司机收入量化排序。

1 数据预处理

在海量的原始数据中,存在这大量杂乱的,重复的,不完整的数据,严重影响到数据分析的执行效率,有可能导致数据分析的偏差,必须经过数据的预处理才能更好的进行数据处理与分析。本文使用的数据清洗工具是Linux中的AWK文本处理工具。AWK允许创建简短的程序,这些程序可以读取输入文件、为数据排序、处理数据、对输入执行计算以及生成报表,还有很多其他的功能,是一个简单实用的小工具。

1.1 出租车数据日志组成

原始数据:

42,陕AU4639,2011-06-18 00:00:00,108.959922,34.250932,35,88,5

此数据由逗号分隔,将每行数据分成八个字段,每个字段所代表的含义如下:

①GPS_ID,如42;②车牌号,如陕AU4639;③日期与时间,如2011-06-18 00:00:00;

④经度,如108.9259922;⑤纬度,如34.250932;⑥速度,如35;⑦角度,如88;

⑧状态,如5,表示载客状态。

1.2 数据清洗

⑴去除数据中的汉字

⑵去除数据中的重复行

⑶去除错误数据,速度小于0或超过120为错误数据,角度超过360为错误数据

⑷去除异常数据,间隔30秒:认为纬度相差0.012,经度相差0.012为异常数据

2 spark平台简介

2.1 spark框架

spark是基于内存计算的计算框架,除了能够提供交互式查询外,还优化了迭代工作负载,在Spark SQL、Spark Streaming、MLlib、GraphX都有自己的子项目。数据存储的核心是弹性分布式数据集(RDD),RDD是分布在一组节点中的只读对象集合,集合是弹性的,如果数据集一部分丢失,则可以对它们进行重建。重建部分数据集的过程依赖于容错机制,该机制可以维护"血统"(即允许基于数据衍生过程重建部分数据集的信息)。

2.2 spark与hadoop比较

hadoop计算框架只有Map-Reduce计算模型,spark提供很多的算子,大体分为action和transformation两种类型,只有action算子才会触发计算,提高了运行速度;?MapReduce通常将中间结果放到HDFS上,spark是基于内存并行大数据框架,中间结果存放到内存,对于迭代数据spark效率更高;MapReduce总是消耗大量时间排序,而有些场景不需要排序,spark可以避免不必要的排序所带来的开销;spark是一张有向无环图(从一个点出发最终无法回到该点的一个拓扑),并对其进行优化。

3 基于spark实现司机收入量化

3.1 切分key-value

把数据切分成两部分,即key_value键值,便于后序的并行计算,提高运算速率。本文key是(车牌号+日期+小时)如:AU4639,2011-06-18 00 ;value为原内容,如:

42,陕AU4639,2011-06-18 00:00:00,108.959922,34.250932,35,88,5

3.2 司机收入量化

过滤状态为5的数据,并将连续为5的数据的起始经纬度经过球面坐标对应求出实际的距离,将一个小时的司机的载客距离相加,最后再把司机一天的载客距离求出来,按当地出租车收费标准计算司机的收入。

3.3 司机收入排序

将所有的司机量化收入进行一个TopN排序,TopN是一个提取前N名数据的算法,N可自行设定,结果出来后,就可以进行各种出租车数据特征分析。

4 实验结论

本文所用的实验数据为西安市出租车数据,每天数据量大概2G左右,经过实际的测试,hadoop处理这些数据需10分钟的时间,基于spark的司机收入量化只需1分钟,spark在处理大数据是性能比较高。

5 结束语

本文利用出租车GPS轨迹数据,进行了司机收入量化分析,在大数据处理方面,现在比较流行的的hadoop平台,由于MapReduce框架的单一性,和执行任务准备阶段的高延迟,使得hadoop性能比较低。spark计算框架,兼容性较强,计算算子较多,基于内存计算,使得灵活性强,速率快,受到人们的欢迎。本文只是简单的分析了一下司机的收入量化,后续还可以基于spark对出租车特征行为进行大量的研究。

参考文献:

[1]唐振坤,基于Spark的机器学习平台设计与实现[D].福建:厦门大学,2014

[2]齐观德,潘遥,李石坚,等.基于出租车轨迹数据挖掘的乘客候车时间预测[J].Journal of Software,2013.

[3]吕玉强,秦勇,贾利民,等. 基于出租车 GPS 数据聚类分析的交通小区动态划分方法研究[J]. 物流技术,2010.

[4]祁文田. 基于 GPS 数据的出租车载客点空间特征分析[D].长春:吉林大学,2013.

[5]陈苗,陈华平. 基于Hadoop的Web 日志挖掘[J]. 计算机工程,2011, 37( 11) : 37-39.

作者简介:

姓名:温兴超(1992.0209)性别:男,山西省大同市人,学历研究生,专业:信息与通信。

上一篇:基于BIM技术的建筑可持续性设计应用 下一篇:自动配液在清洗机上的应用