企业spark案例 —— 出租车轨迹分析(Python)

news/2025/2/12 4:23:28/

第1关:SparkSql 数据清洗

# -*- coding: UTF-8 -*-
from pyspark.sql import SparkSession
if __name__ =='__main__':spark = SparkSession.builder.appName("demo").master("local").getOrCreate()#**********begin**********#df = spark.read.option("header",True).option("delimiter","\t").csv("/root/data.csv")df.createTempView("data")spark.sql("""select regexp_replace(TRIP_ID,'\\\W+','') as TRIP_ID ,regexp_replace(CALL_TYPE,'\\\W+','') as CALL_TYPE ,regexp_replace(ORIGIN_CALL,'\\\W+','') as ORIGIN_CALL ,regexp_replace(TAXI_ID,'\\\W+','') as TAXI_ID ,regexp_replace(ORIGIN_STAND,'\\\W+','') as ORIGIN_STAND ,regexp_replace(TIMESTAMP,'\\\W+','') as TIMESTAMP ,regexp_replace(POLYLINE,'\\\W+','') as POLYLINEfrom data""").show()#**********end**********#spark.stop()

第2关:SparkSql数据分析

# -*- coding: UTF-8 -*-
from pyspark.sql import SparkSession
import jsonif __name__ == '__main__' :spark = SparkSession.builder.master("local").appName("demo").getOrCreate()#**********begin**********#df = spark.read.option("header",True).option("delimiter","\t").csv("/root/data2.csv")df.createTempView("data")spark.sql("select TRIP_ID,CALL_TYPE,ORIGIN_CALL, TAXI_ID, ORIGIN_STAND, from_unixtime(TIMESTAMP,'yyyy-MM-dd') as TIME ,POLYLINE from data").show()spark.udf.register("timeLen", lambda x: {(len(json.loads(x)) - 1) * 15 if len(json.loads(x)) > 0 else 8})spark.udf.register("startLocation", lambda x: {str(json.loads(x)[0]) if len(json.loads(x)) > 0 else ""})spark.udf.register( "endLocation", lambda x: {str(json.loads(x)[len(json.loads(x)) - 1]) if len(json.loads(x)) > 0 else ""})df.createTempView("data2")res=spark.sql("select TRIP_ID,CALL_TYPE,ORIGIN_CALL,TAXI_ID,ORIGIN_STAND,from_unixtime(TIMESTAMP,'yyyy-MM-dd') as TIME, POLYLINE, timeLen(POLYLINE) as TIMELEN, startLocation(POLYLINE) as STARTLOCATION, endLocation(POLYLINE) as ENDLOCATION from data2")res.createTempView("data3")res.show()spark.sql("select CALL_TYPE,TIME,count(1) as NUM from data3 group by TIME,CALL_TYPE order by CALL_TYPE,TIME").show()#**********end**********#


http://www.ppmy.cn/news/1224745.html

相关文章

mingw-gcc编译窗体和console

下面这段程序&#xff0c;如果用-mconsole选项编译&#xff0c;出来的窗体就会带上命令行&#xff0c;用-mwindows则不会有。 #include <windows.h>/* This is where all the input to the window goes to */ LRESULT CALLBACK WndProc(HWND hwnd, UINT Message, WPARAM…

关于新能源汽车的英语翻译

近年来&#xff0c;随着全球对环保和可持续发展的重视&#xff0c;新能源汽车已经成为汽车产业的重要发展方向。各国政府和企业都在加大投入&#xff0c;推动新能源汽车的技术研发和产业化发展&#xff0c;进而促进了新能源汽车翻译的需求不断提升 。那么&#xff0c;关于新能源…

深度学习中文汉字识别 计算机竞赛

文章目录 0 前言1 数据集合2 网络构建3 模型训练4 模型性能评估5 文字预测6 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 深度学习中文汉字识别 该项目较为新颖&#xff0c;适合作为竞赛课题方向&#xff0c;学长非常推荐&#xf…

Python winreg将cmd/PowerShell(管理员)添加到右键菜单

效果 1. 脚本 用管理员权限运行&#xff0c;重复执行会起到覆盖效果&#xff08;根据sub_key&#xff09;。 icon自己设置。text可以自定义。sub_key可以改但不推荐&#xff08;避免改成和系统已有项冲突的&#xff09;。command不要改。 from winreg import *registry r&q…

【六袆 - MySQL】SQL优化;Explain SQL执行计划分析;

Explain SQL执行计划分析 概念:English Unit案例分析1.分析的SQL2.执行计划分析 【如图】MySQL执行计划参数以及它们的影响或意义:概念: MySQL执行计划(Execution Plan)是数据库系统根据查询语句生成的一种执行策略,用于指导数据库引擎执行查询操作。 English Unit This…

企业微信H5开发遇到的坑

企业微信官方推荐wx.agentConfig引用<script src"https://open.work.weixin.qq.com/wwopen/js/jwxwork-1.0.0.js"></script>是没有效果的 必须引用以下代码才有效果&#xff0c;这也是我看了社区的回答才有所收获&#xff0c;是一个坑 且VUE引用在线的…

【cpolar】Ubuntu本地快速搭建web小游戏网站,公网用户远程访问

&#x1f3a5; 个人主页&#xff1a;深鱼~&#x1f525;收录专栏&#xff1a;cpolar&#x1f304;欢迎 &#x1f44d;点赞✍评论⭐收藏 目录 前言 1. 本地环境服务搭建 2. 局域网测试访问 3. 内网穿透 3.1 ubuntu本地安装cpolar 3.2 创建隧道 3.3 测试公网访问 4. 配置…

python3:print()打印. 2023-11-18

Python3 print ()不换行输出 import random # 导入random for i in range(10):print(random.randint(1,999), end",") #random.randint(1,999)随机返回1-999间任意一个整数,包括1和999 #print()添加end"" 自定义参数&#xff0c;实现不换行输出效果.end的…