Spark出租车数据实验实用说明书
Spark出租车数据实验实用说明书
一、实验原理:
(1)数据的准备。
(2)创建DataFrame。
(3)使用kmeans聚类。
(4)聚类结果可视化。
二、实验要求
使用出租车上传的GPS点作为分析对象,使用KMeans把出租车轨迹点聚类找出出租车出现秘籍的地方,用地图的方式可视化展示。
三、实验实现:
1、数据的下载
数据为:taxi.csv
格式: tid-出租车编号 lat-维度 lon-经度 time-时间戳
利用到的第三方库:numpy(pip install numpy) 在cmd中即可安装
2、数据分析 ————在spark中(交互式pyspark)
from pyspark.sql impport SparkSession
from pyspark import SparkContext #引入与sql相关的包初始化spark上下文
taxi_data = sc.textFile(“path(taxi.csv)”) #读取taxi.csv文件
taxi_rdd = taxi_data.map(lambda line:line.split(‘,’)) #使用map算子操作将数据以逗号隔开创建RDD。
from pyspark.ml.linalg import Vectors #导包
taxi_row = taxi_rdd.map(lambda x:(Vectors.dense (x[1],x[2]),)) #创建矢量RDD,两个矢量参数分别为经度和维度。
Sqlsc = SparkSession.builder.getOrCreate()
Taxi_df = sqlsc.createDataFrame(taxi_row,[“features”]) #使用SparkSessio
创建sql上下文并使用createDataFrame创建DataFrame
From pyspark.ml.clustering import KMeans
Kmeans = KMeans(k=3,seed=1)
Model = kmeans.fit(taxi_df)
Centers=model.Centers()
Print(centers)
3、可视化展现
已有百度地图的账号则直接请求资源即可,没有的需先注册相应的百度地图账号,再对所需地图资源请求。http://lbsyun.baidu.com/apiconsole/key
在创建应用列表中填写自己所需的应用名称(此次实验我使用的:taxi202005)应用类型为浏览器。
最后创建一个文档编写相应的html编码,然后打开即可展示结果。
附本次html的核心代码:
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>kmeans聚类可视化</title>
<style type="text/css">
html{height:100%}
body{height:100%;margin:0px;padding:0px}
#container{height:100%}
</style>
<script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=Z7q0WBomr1GbD6HVGSD6GyBIrkqeoFhi">
//v2.0版本的引用方式:src="http://api.map.baidu.com/api?v=2.0&ak=您的密钥"
</script>
</head> <body>
<div id="container"></div>
<script type="text/javascript">
var map = new BMap.Map("container");
// 创建地图实例
map.enableScrollWheelZoom(); //允许滑轮进行放大缩小
map.addControl(new BMap.NavigationControl());// 添加平移缩放控件
map.addControl(new BMap.ScaleControl());// 添加比例尺控件
var myP1 = new BMap.Point(104.088050401,30.6461552); //声明点对象
var myP2 = new BMap.Point(103.89418873,30.89418873);
var myP3 = new BMap.Point(104.01765079,30.65644259);
// 创建点坐标
map.centerAndZoom(myP1 , 15);
// 初始化地图,设置中心点坐标和地图级别
map.clearOverlays(); //清空地图中的对象
var marker1 = new BMap.Marker(myP1); //定义点样式,默认为红色水滴形状
var marker2 = new BMap.Marker(myP2);
var marker3 = new BMap.Marker(myP3);
map.addOverlay(marker1); //添加点到地图
map.addOverlay(marker2);
map.addOverlay(marker3);
</script>
</body>
</html>
Spark出租车数据实验实用说明书相关推荐
- Spark读写HBase:处理纽约出租车数据
一.数据及部分代码来源: 解析geojson数据:https://github.com/jwills/geojson 纽约出租车数据:http://www.andresmh.com/nyctaxitr ...
- 徒手打造基于Spark的数据工厂(Data Factory):从设计到实现
在大数据处理和人工智能时代,数据工厂(Data Factory)无疑是一个非常重要的大数据处理平台.市面上也有成熟的相关产品,比如Azure Data Factory,不仅功能强大,而且依托微软的云计 ...
- Ronald Van Loon/Greg White带你领略Hadoop/Spark大数据CCA175认证(一)
目录 圣普伦Simplilearn课程概述: 圣普伦的Hadoop/Spark大数据CCA175认证培训课程特点: 上课模式: 预修课程: 适合人群 主要学习成果: 认证考试: 认证条件: 课程设置: ...
- 在阿里云中搭建大数据实验环境
云计算是和自来水一样的商业模式.有了自来水,我们可以不用自己挖井,就可以快速.便捷.廉价地获得水资源.而有了云计算,我们就可以不用自己建机房.买设备.维护系统,就可以快速.便捷.廉价地获得IT资源(C ...
- 2018年新春报喜!热烈祝贺王家林大咖大数据经典传奇著作《SPARK大数据商业实战三部曲》 畅销书籍 清华大学出版社发行上市!
2018年新春报喜!热烈祝贺王家林大咖大数据经典传奇著作<SPARK大数据商业实战三部曲>畅销书籍 清华大学出版社发行上市! 本书基于Spark 2.2.0新版本,以Spark商业案例实战 ...
- 弥合鸿沟:一种生成内部威胁数据的实用方法(Bridging the Gap: A Pragmatic Approach to Generating Insider Threat Data )
Bridging the Gap: A Pragmatic Approach to Generating Insider Threat Data 弥合鸿沟:一种生成内部威胁数据的实用方法 摘要:恶意内 ...
- 谁说大数据不实用?来看看数据化带来的惊喜
近年来,被「大数据」这一新词所包围,但是说来说去,由冷到热又趋冷,耳朵都听出茧子来了,除了沃尔玛超市「啤酒与尿布」的老例子,似乎并没有什么新的应用让人切身感受到大数据带来的惊喜,这是因为「大数据」被过 ...
- Spark Machine Learning 03 Spark上数据的获取、处理与准备
Chap 03 Spark上数据的获取处理 Spark上数据的获取.处理与准备 MovieStream,数据包括网站提供的电影数据.用户的服务信息数据以及行为数据. 这些数据涉及电影和相关内容(比如标 ...
- 【Spark篇】---Spark解决数据倾斜问题
[Spark篇]---Spark解决数据倾斜问题 参考文章: (1)[Spark篇]---Spark解决数据倾斜问题 (2)https://www.cnblogs.com/LHWorldBlog/p/ ...
- AI公开课:19.05.29 浣军-百度大数据实验室主任《AutoDL 自动化深度学习建模的算法和应用》课堂笔记以及个人感悟
AI公开课:19.05.29 浣军 百度大数据实验室主任<AutoDL 自动化深度学习建模的算法和应用>课堂笔记以及个人感悟 导读 浣军博士,汉族,1975年出生于江苏苏州, ...
最新文章
- python基础--urllib
- Spring点滴一:Spring Ioc 容器
- leetcode 268. Missing Number
- BYS推荐MS前端PhoneCall面试问题整理-1
- 数据结构与算法笔记(十五)—— 散列(哈希表)
- 再有人问你synchronized是什么,就把这篇文章发给他。
- Django学习笔记之——Forms
- jqGrid getGridParam办法
- 更精炼更专注的RTMPClient客户端EasyRTMPClient,满足直播、转发、分析等各种需求...
- python教材知乎_python大学里用哪本教材比较好?
- 设备管理器android感叹号,设备管理器其他设备感叹号
- gdb vscode 不进入断点_VScode配置MASM32运行环境(断点/运行/debug/配合emu8086(非DOSBox))...
- 5行Python代码实现刷爆全网的动态条形图!
- Zookeeper的Quorum机制-谈谈怎样解决脑裂(split-brain)
- 通俗认识理解OpenAI Five
- sql row_number() over() 来自动产生行号
- 线性规划问题的模型建立与求解
- 一款好看流光风格个人主页HTML源码
- 自动化搜索ARX密码差分特征的方法
- 如何用Python进行数据分析
热门文章
- VMware 设置共享文件夹
- (二)zookeeper安装
- bzoj:1828: [Usaco2010 Mar]balloc 农场分配
- UEditor的使用方法
- vue怎么使用eval_javascript - 在方法内部的Vue2中使用eval()可以工作,但不能同时工作 - 堆栈内存溢出...
- kafka 重新分配节点_你可能需要的Kafka面试题与部分答案整理
- pdf reference官方指南之-图片
- libcaffe.so: undefined reference to `cv.read
- layui 点击头像 上传头像
- 在内核中构造一个UDP 数据