企业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.mzph.cn/news/150790.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

开发知识点-uniapp微信小程序-开发指南

uniapp Vue的原型链生命周期函数onLoaduni.chooseLocationgetCurrentPages美团外卖微信小程序开发uniapp-美团外卖微信小程序开发P1 成果展示P2外卖小程序后端,学习给小程序写http接口P3 主界面配置P4 首页组件拆分P13 外卖列表布局筛选组件商家 布局测试数据创建样…

flink的window和windowAll的区别

背景 在flink的窗口函数运用中,window和windowAll方法总是会引起混淆,特别是结合上GlobalWindow的组合时,更是如此,本文就来梳理下他们的区别和常见用法 window和windowAll的区别 window是KeyStream数据流的方法,其…

【运维篇】Redis常见运维命令详解

文章目录 1. 前言2. 连接管理命令详解2.1 AUTH命令2.2 PING命令2.3 SELECT命令2.4 QUIT命令 3. 服务器管理命令详解3.1 FLUSHALL命令3.2 SAVE/BGSAVE命令3.3 SHUTDOWN命令 4. 安全管理命令详解4.1 CONFIG命令4.1.1 CONFIG SET命令用法4.1.2 CONFIG GET命令用法 4.2 AUTH命令 5.…

QT多线程项目中子线程无法修改主线程的ui组件

情况描述 今天我创建了一个QT多线程的工程,框架如下。我希望通过指针的方式,让子线程去直接修改主线程的ui组件,但事与愿违。 class ChildThread : public QThread {Q_OBJECT public:ChildThread (MainThread* par):m_Par(par){}; protecte…

什么是美颜SDK?直播美颜SDK技术深度剖析

在实现实时美颜的过程中,美颜SDK扮演着关键的角色,它为开发者提供了一套强大的工具,使得实时美颜效果能够轻松应用于直播平台。 一、美颜SDK的基本概念 美颜SDK是一种软件工具包,通过集成了丰富的图像处理算法和实时计算技术&a…

mysql使用--子查询

1.标量子查询 将一个查询结果集中只含一行,行中只有一列的结果集称为标量结果集。 标量结果集可以作为数值参与到另一个查询中。 如:SELECT * FROM student_score WHERE number (SELECT number FROM student_info WHERE name ‘狗哥’); 2.列子查询 将…

springboot使用MongoTemplate根据正则表达式查询日期数据

一、日期正则表达式测试 匹配HH:mm:ss正则表达式写法有很多列举两个 .(点)代表任意匹配 ^必须以xxx开头, 如^[a-z],必须以a-z的字母开头 : 精确匹配,必须是: ([0-1]?[0-9]|2[0-3]).([0-5][0-9]).([0-5][0-9]) ^([0-1]?[0-9]|2[0-3]).([0-5][0-9]).([0-5][0-9])$ ([0-1]?…

MIUI查看当前手机电池容量

MIUI查看当前手机电池容量 1. 按如下步骤操作生成bug报告 2. 按如下操作解压bug报告 Last learned battery capacity

BLE协议栈入门学习

蓝牙LE栈 物理层 频带 蓝牙LE在2400MHz到2483.5MHz范围内的2.4GHz免授权频段工作,该频段分为40个信道,每个信道间隔为2MHz。 时分 蓝牙LE是半双工的,可以发送和接收,但不能同时发送和接收,然而,所有的设…

产品经理必须知道的电商API接口对接流程注意事项

接口对接流程梳理 产品经理 知晓自己负责系统做什么,外接三方系统做什么。 系统对接产品经理实操步骤: ①与公司业务人员沟通,与系统对接方产品/技术描述业务场景,沟通发放接口文档材料 ②拿到材料之后电商API接口过多请对方…

牛客剑指offer刷题动态规划篇

文章目录 连续子数组的最大和题目思路代码实现 连续子数组的最大和(二)题目思路代码实现 连续子数组的最大和 题目 给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 子数组…

【测试功能篇 01】Jmeter 压测接口最大并发量、吞吐量、TPS

压力测试,我们针对比较关键的接口,可以进行相应的压力测试,主要还是测试看看接口能抗住多少的请求数,TPS稳定在多少,也就是吞吐量多少 安装 Jmeter的安装很简单,官网下载地址 http://jmeter.apache.org/ &…

day30_servlet

今日内容 零、复习昨日 一、接收请求 二、处理响应 三、综合案例 零、复习昨日 画图, 请求处理的完整流程(javaweb开发流程) 零、注解改造 WebServlet注解,相当于是在web.xml中配置的servlet映射 Servlet类 package com.qf.servlet;import javax.servlet.ServletException; im…

HTML5学习系列之音频和视频

HTML5学习系列之音频和视频 前言音频和视频embedobjectaudiovideo 总结 前言 学习记录。 音频和视频 embed embed定义嵌入插件。 src:指定来源height:高度type:内容的类型width:内容的宽度 object 定义一个嵌入的对象 data…

HTML5学习系列之项目实战1

HTML5学习系列之项目实战1 前言代码记录问题总结 前言 学习记录 代码 <div id"player"><audio id"musicbox"></audio><div id"controls" class"clearfix controls"><div id"play" class"…

关于代码混淆,看这篇就够了

​ 代码混淆一.基本概念java的bytecode很容易通过JAD等反编译工具还原出源代码。这样势必不满足安全的定义。如何一定程度上保护需要防止被反编译的源代码呢&#xff1f;混淆&#xff08;obfuscate&#xff09;技术。注意&#xff1a;用obfuscate防盗版是根本不可能&#xff0c…

软考的含金量如何?怎么备考?

软考的含金量&#xff0c;太香了&#xff01; 一张软考证书可以抵扣个税&#xff0c;一次性抵扣3600元个税&#xff1b; 一张软考证书可以帮助省去大额的中介费&#xff0c;在一线城市直接职称入户&#xff1b; 一张软考证书可以在招投标中加分&#xff0c;为企业增加中标的…

代码随想录算法训练营第五十八天丨 单调栈01

739. 每日温度 思路 首先想到的当然是暴力解法&#xff0c;两层for循环&#xff0c;把至少需要等待的天数就搜出来了。时间复杂度是O(n^2) 那么接下来在来看看使用单调栈的解法。 什么时候用单调栈呢&#xff1f; 通常是一维数组&#xff0c;要寻找任一个元素的右边或者左边…

HTTP Header 参数详解

关于HTTP消息头 HTTP消息头是在&#xff0c;客户端请求&#xff08;Request&#xff09;或服务器响应&#xff08;Response&#xff09;时传递的&#xff0c;位请求或响应的第一行&#xff0c;HTTP消息体&#xff08;请求或响应的内容&#xff09;是其后传输。HTTP消息头&…

MySQL 的执行原理(二)

5.3. MySQL 的查询成本 5.3. MySQL 的查询成本 MySQL 执行一个查询可以有不同的执行方案&#xff0c;它会选择其中成本最低&#xff0c;或者 说代价最低的那种方案去真正的执行查询。不过我们之前对成本的描述是非常模 糊的&#xff0c;其实在 MySQL 中一条查询语句的执行成本…