开发者学堂课程【大数据 Spark2020版(知识精讲与实战演练)第四阶段:项目分析_业务场景】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/691/detail/12105
项目分析_业务场景
总结与回顾
接触到 Spark 相关内容,包括 rdd、dataset 如何使用,rdd 与 dataset 做离线分析。
练习
主要业务场景出租车行程数据,哪个出租车在何时何地载人,打车时间与下车地点,对数据进行分析
数据量大、内容多
业务:
步骤包括数据集结构、业务场景、学到什么
1.数据集结构
整个数据集中有几百万条数据
数据集内容内容:
数据集是一个 csv 文件,第一列 hack_license,出租车的执照号,师傅的唯一标识,pickup_datatime 上车的时间,
dropoff_datatime 下车的时间,通过这两列可以计算中间停留时间,trip_time_in set,中间停留的时间,pickup_longitude 上车的经度,pickup_latitude 上车的纬度,dropoff_longitude 下车的经度,dropoff_latitude 下车的纬度,
pickup_longitude,pickup_latitude,dropoff_longitude,dropoff_latitude 即为上车点下车点,
数据集有12个调度文件,数据量为26.6GB,数据较多,可达上亿条数据。
总结:
字段 |
示例 |
示意 |
Hack_license |
BA96DE419E711691B9445D6A6307C170 |
执照号,可以唯一标识一辆出租车 |
pickup_datetime |
2013-01-0115:11:48 |
上车时间 |
dropoff_datetime |
2013-01-01 15:18:10 |
下车时间 |
pickup_longitude |
-73.978165 |
上车点 |
pickup_latitude |
40.757977 |
上车点 |
dropoff_longitude |
-73.989838 |
下车点 |
dropoff_latitude |
40.751171 |
下车点 |
其中有三个点需要注意:
hack_license 是出租车执照,可以唯一标识一辆出租车
pickup_datetime 和 dropoff_datetime 分别是上车时间和下车时间,通过这个时间,可以获知行车时间
pickup_longitude 和 dropoff_longitude 是经度,经度所代表的是横轴,也就是X轴
pickup_latitude 和 dropoff_latitude是纬度,纬度所代表的是纵轴,也就是Y轴
每一行数据的意义?
代表一次行程,行程是哪个出租车的、上下车时间、上下车位置,处理两类数据,时间数据与位置数据,时间数据也称为时间序列,数值数据较为复杂,非常专业
数据集每一行记录即为一个行程
业务场景:
在网约车出现之前,出行很大一部分要靠出租车和公共交通,所以经常会见到一些情况,比如说从东直门打车,告诉师傅要去昌平,师傅可能拒载。这种情况所凸显的是一个出租车调度的难题,所以需要先通过数据来看到问题,后解决问题.
所以要统计出租车利用率,也就是有乘客乘坐的时间,和无乘客空跑的时间比例.这是一个理解出租车的重要指标,影响利用率的一个因素就是目的地,比如说,去昌平,可能出租车师傅不确定自己是否要空放回来,而去国贸,下车几分钟内,一定能有新的顾客上车。
而统计利用率的时候,需要用到时间数据和空间数据来进行计算,对于时间计算来说, Spark SQL 提供了很多工具和函数可以使用,而空间计算仍然是一个比较专业的场景,需要使用到第三方库。
我们的需求是,在上述的数据集中,根据时间算出等待时间,根据地点落地到某个区,算出某个区的平均等待时间,也就是这个下车地点对于出租车利用率的影响。
问题:拒载、利用率问题
解决问题:
收集分析数据,评价利用率问题,看到出租车在一个区,平均等客时间
平均等客时间可以看出出租车在那个区容易接客,进而解决问题
大数据工程师做数据用于解决某个问题
解决问题是需要绘制报表,拿到部分数据,通过分析数据找到问题所在,进而解决问题
出租车在一个区的平均等客时间是分析的重要角度
技术点和其它技术的关系:
①数据清洗
数据清洗在几乎所有类型的项目中都会遇到,处理数据的类型,处理空值等问题
②JSON 解析
JSON 解析在大部分业务系统的数据分析中都会用到,如何读取 JSON 数据,如何把JSON 数据变为可以使用的对象数据
业务系统前后端的交互用 JSON
③地理位置信息处理
地理位置信息的处理是一个比较专业的场景,在一些租车网站,或者像滴滴,Uber 之类的出行服务上,也经常会处理地理位置信息.
④探索性数据分析
从拿到一个数据集,明确需求以后,如何逐步了解数据集,如何从数据集中探索对应的内容等,是一个数据工程师的基本素质
掌握基础技巧,在每一步都要查看数据集,探索中间过程
⑤会话分析
会话分析用于识别同一个用户的多个操作之间的关联,是分析系统常见的分析模式,在电商和搜索引擎中非常常见
在一个数据集中如何找到多个数据之间的关联关系
本小节掌握的知识:
①SparkSQL 中对于类型的处理
②Scala 中常见的 JSON 解析工具
③GeoJson 的使用
硬性知识
SparkSQL 使用、JSON 解析、地理位置分析
软性知识
探索性数据分析、会话分析
数据集是什么、出租车在每个区平均停留时间统计指标、所使用的技术


