出租车轨迹分析案例--大学练习

cz学java cz学java 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区

这是经典的出租车轨迹练习分析案例,有需要的同学可以慢慢查看,觉得有用的话可以关注转发一下。

 

第一题:数据分析

import org.apache.spark.sql.SparkSession

 

object Step1 {

    def main(args: Array[String]): Unit = {

        val spark = SparkSession.builder().appName("Step1").master("local").getOrCreate()

 

        /**********begin**********/

val frame = spark.read.option("header", true).option("delimiter", "\t").csv("/root/data.csv")

 frame.createTempView("data")

 spark.udf.register("cleanData", (x: String) => {

 x.replaceAll("\\@+", "").replaceAll("\\$+", "")

 })

 spark.sql(

 """

 |select cleanData(TRIP_ID) as TRIP_ID,cleanData(CALL_TYPE) as CALL_TYPE,cleanData(ORIGIN_CALL) as ORIGIN_CALL,

 |cleanData(TAXI_ID) as TAXI_ID,cleanData(ORIGIN_STAND) as ORIGIN_STAND ,cleanData(TIMESTAMP) as TIMESTAMP,

 |cleanData(POLYLINE) as POLYLINE

 |from data

 """.stripMargin).show()

 

        /**********end**********/

        spark.stop()

    }

}

第二题:数据分析

import com.alibaba.fastjson.JSON

import org.apache.spark.sql.SparkSession

import org.apache.spark.sql.types.StringType


 

object Step2 {

    def main(args: Array[String]): Unit = {

        val spark = SparkSession.builder().appName("Step1").master("local").getOrCreate()

        spark.sparkContext.setLogLevel("error")

 

        /**********begin**********/

val frame = spark.read.option("header", true).option("delimiter", "\t").csv("/root/data2.csv")

        frame.createTempView("data")

        //1.将时间戳转换成时间

        spark.sql("select TRIP_ID,CALL_TYPE,ORIGIN_CALL,TAXI_ID,ORIGIN_STAND,POLYLINE, from_unixtime(TIMESTAMP,'yyyy-MM-dd') as TIME from data").createTempView("data2")

        spark.sql("select * from data2").show()

        //2.将POLYLINE字段,分离出startLocation,endLocation 两个字段

        spark.udf.register("startLocation", (x: String) => {

        val arr = JSON.parseArray(x)

        arr.get(0).toString

        })

        spark.udf.register("endLocation", (x: String) => {

        val arr = JSON.parseArray(x)

        arr.get(arr.size() - 1).toString

        })

        spark.sql(

        """

            |select TRIP_ID,CALL_TYPE,ORIGIN_CALL,TAXI_ID,ORIGIN_STAND,POLYLINE,TIME,startLocation(POLYLINE) as startLocation,endLocation(POLYLINE) as endLocation  from data2

        """.stripMargin).createTempView("data3")

        spark.sql("select * from data3").show()

        //3.计算时长,行程的总行程时间定义为(点数-1)×15秒。

        // 例如,POLYLINE中具有101个数据点的行程具有(101-1)* 15 = 1500秒的长度

        spark.udf.register("timeLen", (x: String) => {

        (JSON.parseArray(x).size() - 1) * 15

        })

        spark.sql(

        """

            |select TRIP_ID,CALL_TYPE,ORIGIN_CALL,TAXI_ID,ORIGIN_STAND,POLYLINE,TIME,startLocation(POLYLINE) as startLocation,endLocation(POLYLINE) as endLocation,timeLen(POLYLINE) as  timeLen  from data3

        """.stripMargin).createTempView("data4")

        spark.sql("select * from data4").show()

        //4.统计每天各种呼叫类型的数量并以CALL_TYPE,TIME升序排序

        spark.sql(

        """

            |select CALL_TYPE ,TIME,count(1) as num from data4 group by TIME,CALL_TYPE order by CALL_TYPE,TIME

        """.stripMargin).show()

 

        /**********end**********/

        spark.stop()

    }

}

 

 

 

 

 

...全文

相关推荐

出租车轨迹数据

出租车轨迹数据,可以用于大数据轨迹数据分析实验,可以用来分析

qqqwwweee0001

机器学习与深度学习-出租车轨迹分析

机器学习与深度学习——出租车轨迹分析

爱研究的小牛

出租车轨迹分析和提取.zip

出租车轨迹提取和分析。 2014年5月1日上午6点至晚上10点的出租车轨迹数据(文件名“20140501.csv”),其中包含出租车ID、轨迹点时间、经度、维度、方向、速度、状态(“空车”表示无乘客、“重车”表示有乘客)等.

Hui_R_Q_XIONGDA

武汉出租车GPS轨迹分析实战包:含清洗、热区、OD网络、目的地预测全流程代码与数据

一套开箱即用的武汉出租车轨迹分析资源,覆盖从原始GPS数据(20181105.txt)读取、时间排序、轨迹插值与平滑、路网匹配(基于WuhanAllroad/WuhanPartroad路网数据),到上下车点热区识别、聚类可视化、轨迹相似性计算、异常轨迹检测、OD热点空间交互网络构建,以及出租车目的地预测建模全过程。配套武汉行政区划矢量图(含.shp/.prj/.dbf等完整GIS文件)和详细README说明,所有脚本均使用Python编写,依赖库常见(如pandas、geopandas、scikit-learn、networkx、matplotlib等),可直接运行调试。数据预处理模块(脚本1–3)确保轨迹质量;空间分析模块(脚本4–7)支持热力图生成、聚类结果导出与地理可视化;高阶分析模块(脚本8–10)实现基于历史轨迹的目的地预测、轨迹线相似度度量及城市级出行交互关系建模。适用于交通规划、城市计算、地理信息分析等教学与研究场景。

kkk56

深圳上海出租车GPS轨迹分析实战代码包,含Jupyter Notebook与可视化全流程

一套开箱即用的出租车轨迹分析实践资源,包含深圳、上海两地真实GPS数据的完整处理流程:数据读取、时间与空间清洗、停留点识别、行程划分、OD分析、热力图与轨迹动画生成。所有代码封装在两个Jupyter Notebook(code_shenzhen_taxi_gps.ipynb、code_shanghai_taxi_gps.ipynb)中,调用transbigdata等成熟工具包,支持一键运行。配套使用说明.txt详细列出环境配置、依赖安装及各模块执行顺序,project目录下提供结构化项目组织,data目录预留原始数据接入位置。适合计算机、地理信息、交通工程等专业学生完成课程设计或大作业,无需从零搭建框架,已通过多环境实测验证可稳定运行。

心事收容所
评论
收藏 已收藏
分享
返回顶部