[apache spark]洞见纽约车辆事故|bluemix|apache spark
今天,我们用spark 来分析 下一纽约市车辆事故的大数据。
前提条件:
1.有bluemix 帐号,并并在bluemix的dashboard里创建了一个sparck instance。
2.稳定可以访问纽约市开放公共数据中心NYPD Motor Vehicle Collisions的网络。
3.在bluemix 中的spark instance 里点击进入notebook网页,并创建新的notebook(默认语言:python).
步骤1:获取数据.
到网站:NYPD Motor Vehicle Collisions,导出csv文件。并把这个文件导入到bluemix的storeage,首先点击右上角的Palette>Data Sources。 点击 **Add Source**, 选择**From file**, and 从你本地磁盘选择csv文件。因为数据比较大,上传数据需要一点时间。
步骤2.访问数据。
在你访问csv数据之前,要配置hadoop的相关配置信息。把下面的代码填入即可,如下:
def set_hadoop_config(credentials):
prefix = "fs.swift.service." + credentials['name']
hconf = sc._jsc.hadoopConfiguration()
hconf.set(prefix + ".auth.url", credentials['auth_url']+'/v3/auth/tokens')
hconf.set(prefix + ".auth.endpoint.prefix", "endpoints")
hconf.set(prefix + ".tenant", credentials['project_id'])
hconf.set(prefix + ".username", credentials['user_id'])
hconf.set(prefix + ".password", credentials['password'])
hconf.setInt(prefix + ".http.port", 8080)
hconf.set(prefix + ".region", credentials['region'])
hconf.setBoolean(prefix + ".public", True)
点击插入新代码行,
在新代码行里插入数据配置,点击数据下面的Insert to code
注意,这里自动插入的代码还要自己调整修改,如下:
credentials = {}
credentials['name'] = 'keystone'
credentials['auth_url'] = 'https://identity.open.softlayer.com'
credentials['project_id'] = 'XXX'
credentials['region'] = 'dallas'
credentials['user_id'] = 'XXX'
credentials['password'] = 'XXX'
credentials['container'] = 'notebooks'
其中,credentials['name'] = 'keystone',意思是给hadoop取个名字,这里可以自行决定。
然后,再新建一行代码行,填入下面的代码,如下 :
set_hadoop_config(credentials)
这是指把上面的credentials相关的信息配置进hadoop的配置实例里。
步骤3.加载数据。在新代码行,填入以下代码:
from __future__ import division
import numpy as np
from pyspark.sql import SQLContext
sqlContext = SQLContext(sc)
# adding the PySpark modul to SparkContext
sc.addPyFile("https://raw.githubusercontent.com/seahboonsiew/pyspark-csv/master/pyspark_csv.py")
import pyspark_csv as pycsv
collisions = sc.textFile("swift://" + credentials['container'] + "." + credentials['name'] + "/NYPD_Motor_Vehicle_Collisions.csv")
def skip_header(idx, iterator):
if (idx == 0):
next(iterator)
return iterator
collisions_header = collisions.first()
collisions_header_list = collisions_header.split(",")
collisions_body = collisions.mapPartitionsWithIndex(skip_header)
# filter not valid rows
collisions_body = collisions_body.filter(lambda line : len(line.split(","))>29)
# create Spark DataFrame using pyspark-csv
collisions_df = pycsv.csvToDataFrame(sqlContext, collisions_body, sep=",", columns=collisions_header_list)
collisions_df.cache()
依次执行以上的代码,应该会有个输出:
代表数据加载成功!spark已经成功创建RDD数据集。
现在你可用这些数据来做些有趣的事情了。
a.先检查下python的schema
# Python expressions in a code cell will be outputted after computation
collisions_df.printSchema()
输出:
b.取第一行数据:
collisions_df.take(1)
输出:
更多内容请访问IBM的bluemix数据分析主页:https://console.ng.bluemix.net/data/analytics
[apache spark]洞见纽约车辆事故|bluemix|apache spark的更多相关文章
- Apache Spark 2.2.0 中文文档 - Spark RDD(Resilient Distributed Datasets)论文 | ApacheCN
Spark RDD(Resilient Distributed Datasets)论文 概要 1: 介绍 2: Resilient Distributed Datasets(RDDs) 2.1 RDD ...
- Apache Spark 2.2.0 中文文档 - Spark 编程指南 | ApacheCN
Spark 编程指南 概述 Spark 依赖 初始化 Spark 使用 Shell 弹性分布式数据集 (RDDs) 并行集合 外部 Datasets(数据集) RDD 操作 基础 传递 Functio ...
- Apache Spark 2.2.0 中文文档 - Spark Streaming 编程指南 | ApacheCN
Spark Streaming 编程指南 概述 一个入门示例 基础概念 依赖 初始化 StreamingContext Discretized Streams (DStreams)(离散化流) Inp ...
- Apache Spark 2.2.0 中文文档 - Spark SQL, DataFrames and Datasets Guide | ApacheCN
Spark SQL, DataFrames and Datasets Guide Overview SQL Datasets and DataFrames 开始入门 起始点: SparkSession ...
- Apache Spark 2.2.0 中文文档 - Spark Streaming 编程指南
Spark Streaming 编程指南 概述 一个入门示例 基础概念 依赖 初始化 StreamingContext Discretized Streams (DStreams)(离散化流) Inp ...
- Apache Spark 2.2.0 中文文档 - Spark SQL, DataFrames and Datasets
Spark SQL, DataFrames and Datasets Guide Overview SQL Datasets and DataFrames 开始入门 起始点: SparkSession ...
- Apache Spark 2.2.0 中文文档 - Spark RDD(Resilient Distributed Datasets)
Spark RDD(Resilient Distributed Datasets)论文 概要 1: 介绍 2: Resilient Distributed Datasets(RDDs) 2.1 RDD ...
- 《Apache Kafka 实战》读书笔记-认识Apache Kafka
<Apache Kafka 实战>读书笔记-认识Apache Kafka 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.kafka概要设计 kafka在设计初衷就是 ...
- 禁止apache显示目录索引的常见方法(apache禁止列目录)
禁止Apache显示目录索引,禁止Apache显示目录结构列表,禁止Apache浏览目录,这是网上提问比较多的,其实都是一个意思.下面说下禁止禁止Apache显示目录索引的常见的3种方法. 要实现禁止 ...
随机推荐
- VC程序禁用提示框
程序需要24小时不中断 如果错误提示了的话 runtime error 监控程序就不能重启 下面是网上找的 方便以后用到 http://blog.csdn.net/yuzhiyuxia/article ...
- python - 标准库:subprocess模块
subprocess的目的就是启动一个新的进程并且与之通信. subprocess模块中只定义了一个类: Popen. subprocess.Popen(args, bufsize=0, execut ...
- linux shell 中"2>&1"含义-完美理解-费元星
笨鸟先飞,先理解. 脚本是: nohup /mnt/Nand3/H2000G >/dev/null 2>&1 & 对于& 1 更准确的 ...
- 六:flask-自定义URL转换器
flask进行url参数匹配的时候,是继承的werkzeug.routing.BaseConverter库进行重写的 导入看源码 里面有所有的URL参数数据类型的判断 也就是说,可以继承过后实现自己的 ...
- Java课堂疑问解答与思考4
一. 请运行以下示例代码StringPool.java,查看其输出结果.如何解释这样的输出结果?从中你能总结出什么? 答:定义的三个字符串如果相等,系统自动创建一个,并调用这个,对于由new创建的字符 ...
- 【Linux开发】OpenCV在ARM-linux上的移植过程遇到的问题2---CMAKE配置问题
实际上这里说的是移植的第一步,下载到源码后,我用的是opencv2.4.9,解压缩,然后可以利用cmake-gui来进行configure配置,这里面需要设置交叉编译的工具链,具体的可以参考[Linu ...
- Vue-cli项目与element导航菜单控件的结合使用以及遇到的问题
1.基本使用 第一种常用写法:导航菜单与 router-view 的配合使用 将所用的导航菜单数据编写成一个数组的形式,提高维护性: 在utils工具文件夹中建立utils.js文件: import ...
- Xpath素材
from lxml import etree text = """ <div> <ul> <li class="item-0&qu ...
- Spring Boot 为什么这么火?(二)
Spring Boot 的火 网上连载了 Spring Boot 系列文章,没想到这一开始便与 Spring Boot 深度结缘. 技术社区 Spring Boot 的文章越来越多:Spring Bo ...
- 配置DHCP中继
本实验模拟企业网络场景.某公司分部的网络由交换机S1和网关路由器R1组成,员工终端PC-1和PC-2都连接在S1上.公司要求分部内所有员工主机的IP地址都通过总部的DHCP服务器自动获取.分部网关路由 ...