当前位置: 首页 > news >正文

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

第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.lryc.cn/news/236837.html

相关文章:

  • SQL Server - 使用 Merge 语句实现表数据之间的对比同步
  • 【Web】Flask|Jinja2 SSTI
  • SPDK NVMe-oF target多路功能介绍
  • ADAudit Plus:助力企业安全的权威选择
  • sqli-labs关卡18(基于http头部报错盲注)通关思路
  • uni-app顶部导航栏背景色如何设置,微信小程序返回键设置
  • 基于多种设计模式重构代码(工厂、模板、策略)
  • boomYouth
  • 关于这个“这是B站目前讲的最好的【Transformer实战】教程!“视频的目前可以运行的源代码GPU版本
  • STM32定时器输入捕获测量高电平时间
  • 开源WIFI继电器之硬件电路
  • 远程执行ssh脚本
  • excel导入 Easy Excel
  • html实现图片裁剪处理(附源码)
  • 前端语言报错
  • 详细讲解什么是观察者模式
  • 镭速,克服UDP传输缺点的百倍提速传输软件工具
  • Semi-Supervised Multi-Modal Learning with Balanced Spectral Decomposition
  • 3296:【例50.2】 计算书费《信息学奥赛一本通编程启蒙(C++版)》
  • 统一身份认证平台之SSO建设
  • 【开题报告】基于SpringBoot的膳食营养健康网站的设计与实现
  • 超五类网线和六类网线的相同点和区别
  • Linux--初识和基本的指令(1)
  • 万宾科技智能井盖传感器,提升市政井盖健康
  • transformer学习资料
  • 一起学docker系列之四docker的常用命令--系统操作docker命令及镜像命令
  • MySQL 的执行原理(三)
  • 一道好题——分治
  • 庖丁解牛:NIO核心概念与机制详解 02 _ 缓冲区的细节实现
  • Python itertools模块中的combinations() 函数用法