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出租车数据实验实用说明书相关推荐

  1. Spark读写HBase:处理纽约出租车数据

    一.数据及部分代码来源: 解析geojson数据:https://github.com/jwills/geojson 纽约出租车数据:http://www.andresmh.com/nyctaxitr ...

  2. 徒手打造基于Spark的数据工厂(Data Factory):从设计到实现

    在大数据处理和人工智能时代,数据工厂(Data Factory)无疑是一个非常重要的大数据处理平台.市面上也有成熟的相关产品,比如Azure Data Factory,不仅功能强大,而且依托微软的云计 ...

  3. Ronald Van Loon/Greg White带你领略Hadoop/Spark大数据CCA175认证(一)

    目录 圣普伦Simplilearn课程概述: 圣普伦的Hadoop/Spark大数据CCA175认证培训课程特点: 上课模式: 预修课程: 适合人群 主要学习成果: 认证考试: 认证条件: 课程设置: ...

  4. 在阿里云中搭建大数据实验环境

    云计算是和自来水一样的商业模式.有了自来水,我们可以不用自己挖井,就可以快速.便捷.廉价地获得水资源.而有了云计算,我们就可以不用自己建机房.买设备.维护系统,就可以快速.便捷.廉价地获得IT资源(C ...

  5. 2018年新春报喜!热烈祝贺王家林大咖大数据经典传奇著作《SPARK大数据商业实战三部曲》 畅销书籍 清华大学出版社发行上市!

    2018年新春报喜!热烈祝贺王家林大咖大数据经典传奇著作<SPARK大数据商业实战三部曲>畅销书籍 清华大学出版社发行上市! 本书基于Spark 2.2.0新版本,以Spark商业案例实战 ...

  6. 弥合鸿沟:一种生成内部威胁数据的实用方法(Bridging the Gap: A Pragmatic Approach to Generating Insider Threat Data )

    Bridging the Gap: A Pragmatic Approach to Generating Insider Threat Data 弥合鸿沟:一种生成内部威胁数据的实用方法 摘要:恶意内 ...

  7. 谁说大数据不实用?来看看数据化带来的惊喜

    近年来,被「大数据」这一新词所包围,但是说来说去,由冷到热又趋冷,耳朵都听出茧子来了,除了沃尔玛超市「啤酒与尿布」的老例子,似乎并没有什么新的应用让人切身感受到大数据带来的惊喜,这是因为「大数据」被过 ...

  8. Spark Machine Learning 03 Spark上数据的获取、处理与准备

    Chap 03 Spark上数据的获取处理 Spark上数据的获取.处理与准备 MovieStream,数据包括网站提供的电影数据.用户的服务信息数据以及行为数据. 这些数据涉及电影和相关内容(比如标 ...

  9. 【Spark篇】---Spark解决数据倾斜问题

    [Spark篇]---Spark解决数据倾斜问题 参考文章: (1)[Spark篇]---Spark解决数据倾斜问题 (2)https://www.cnblogs.com/LHWorldBlog/p/ ...

  10. AI公开课:19.05.29 浣军-百度大数据实验室主任《AutoDL 自动化深度学习建模的算法和应用》课堂笔记以及个人感悟

    AI公开课:19.05.29 浣军 百度大数据实验室主任<AutoDL 自动化深度学习建模的算法和应用>课堂笔记以及个人感悟 导读        浣军博士,汉族,1975年出生于江苏苏州, ...

最新文章

  1. python基础--urllib
  2. Spring点滴一:Spring Ioc 容器
  3. leetcode 268. Missing Number
  4. BYS推荐MS前端PhoneCall面试问题整理-1
  5. 数据结构与算法笔记(十五)—— 散列(哈希表)
  6. 再有人问你synchronized是什么,就把这篇文章发给他。
  7. Django学习笔记之——Forms
  8. jqGrid getGridParam办法
  9. 更精炼更专注的RTMPClient客户端EasyRTMPClient,满足直播、转发、分析等各种需求...
  10. python教材知乎_python大学里用哪本教材比较好?
  11. 设备管理器android感叹号,设备管理器其他设备感叹号
  12. gdb vscode 不进入断点_VScode配置MASM32运行环境(断点/运行/debug/配合emu8086(非DOSBox))...
  13. 5行Python代码实现刷爆全网的动态条形图!
  14. Zookeeper的Quorum机制-谈谈怎样解决脑裂(split-brain)
  15. 通俗认识理解OpenAI Five
  16. sql row_number() over() 来自动产生行号
  17. 线性规划问题的模型建立与求解
  18. 一款好看流光风格个人主页HTML源码
  19. 自动化搜索ARX密码差分特征的方法
  20. 如何用Python进行数据分析

热门文章

  1. VMware 设置共享文件夹
  2. (二)zookeeper安装
  3. bzoj:1828: [Usaco2010 Mar]balloc 农场分配
  4. UEditor的使用方法
  5. vue怎么使用eval_javascript - 在方法内部的Vue2中使用eval()可以工作,但不能同时工作 - 堆栈内存溢出...
  6. kafka 重新分配节点_你可能需要的Kafka面试题与部分答案整理
  7. pdf reference官方指南之-图片
  8. libcaffe.so: undefined reference to `cv.read
  9. layui 点击头像 上传头像
  10. 在内核中构造一个UDP 数据