问题重述
能够读取给定的数据文件
出租车GPS数据文件(taxi_gps.txt)
北京区域中心坐标及半径数据文件(district.txt)
能够输出以下统计信息
A:该出租车GPS数据文件(taxi_gps.txt)包含多少量车?
B:北京每个城区的车辆位置点数(每辆车有多个位置点,允许重复)
开发环境:
开发软件 Pycharm
开发语言:Python
系统macOS Mojave
Spark版本 spark-2.1.1-bin-hadoop2.7
Scala版本Scala-2.10.4
Python版本Python3.7
实验原理
输出A:
以第一列统计车辆数,去重
输出B:
1.从(district.txt)文件中取第一个区的记录,获得其名称D1、中心坐标M(x0,y0)和半径r;
2.从(taxi_gps.txt)中获取第一条位置点记录,获得其坐标N(x1,y1)
3.利用欧几里得距离计算公式计算点M和N的距离dis,如果dis<r,则认为该位置记录属于区域D1;得到<D1,1>
4.继续从2开始循环,获得第二个位置记录;直至所有记录遍历完。
5.继续从1开始循环,获得第二个区的记录
数据说明
待统计区域中心数据格式
区域名称:北京城区拼音,例:haidianqu, chaoyangqu, dongchengqu
区域中心GPS经度:格式ddd.ddddddd,以度为单位。
区域中心GPS纬度:格式dd.ddddddd,以度为单位。
区域半径:格式dd,以km为单位
出租车GPS数据格式说明
数据以ASCII文本表示,以逗号为分隔符,以回车换行符(0x0D 0x0A)结尾。数据项及顺序:车辆标识、触发事件、运营状态、GPS时间、GPS经度、GPS纬度,、GPS速度、GPS方向、GPS状态
车辆标识:6个字符
触发事件:0=变空车,1=变载客,2=设防,3=撤防,4=其它
运营状态:0=空车,1=载客,2=驻车,3=停运,4=其它
GPS时间:格式yyyymmddhhnnss,北京时间
GPS经度:格式ddd.ddddddd,以度为单位。
GPS纬度:格式dd.ddddddd,以度为单位。
GPS速度:格式ddd,取值000-255内整数,以公里/小时为单位。
GPS方位&#