Spark高速上手之交互式分析
1.1 Spark交互式分析
执行Spark脚本前,启动Hadoop的HDFS和YARN。Spark的shell提供
了简单方式去识别API。相同也有一个强大的工具去交互式地分析数据。
两种语言有这种交换能力,各自是Scala 和 Python。以下将演示怎样使用Python来分析数据文件。
进入Spark安装主文件夹,输入以下的命令。python命令行模式将会启动。
./bin/pyspark
Spark的主要抽象是一个称之为弹性分布式数据集(Resilient Distributed Dataset,RDD)。RDD可以从Hadoop输入格式(InputFormat。比方HDFS文件),或者通过转换其他RDDs。这里。我们将上传Spark主文件夹下的README文件上传到Hadoop的文件系统/user/app(app是我的linuxusername)文件夹下。详细的命令例如以下:
hdfs dfs –mkdir–p /user/app
hdfs dfs –putREADME.md /usr/app
使用Python创建一个新的弹性分布式数据集,定义例如以下。
>>>textFile = sc.textFile("README.md")
RDD有actions,。它可以返回值以及转换transformations,也可以返回指向新的RDD的指针。以下就是几个RDD的action操作。
>>>textFile.count() # 返回这个RDD的数据项个数
126 >>>textFile.first() # 返回这个RDD的第一项数据
u'# ApacheSpark'
如今让我们使用一个转换(transformation)。我们将使用filter转换返回一个新的RDD,伴随着文件里的数据项的子集。
>>>linesWithSpark=textFile.filter(lambdaline:"Spark"inline)
我们可以链式化转换和动作:
>>> textFile.filter(lambda line:"Spark"inline).count()# How many linescontain "Spark"? 15
RDD动作和转换可以被用作更为复杂的计算,看以下的样例。
>>> textFile.map(lambdaline: len(line.split())).reduce(lambda a, b: aif (a > b)elseb)
15
这个參数的第一项映射一行的数据到一个integer值,创建一个新的RDD。
reduce在RDD上被调用。用于找到一个最大的行数。map和reduce的參数是Python匿名函数lambdas。与此同一时候,你也可以传入不论什么你想要的顶级Python函数。
不如,以下就是传入的一个Python函数。
>>> defmax(a, b):
... if a > b:
... return a
... else:
... return b
... >>>textFile.map(lambda line: len(line.split())).reduce(max)
15
Spark高速上手之交互式分析的更多相关文章
- Spark高速入门指南(Quick Start Spark)
版权声明:本博客已经不再更新.请移步到Hadoop技术博客:https://www.iteblog.com https://blog.csdn.net/w397090770/article/detai ...
- Spark SQL慕课网日志分析(1)--系列软件(单机)安装配置使用
来源: 慕课网 Spark SQL慕课网日志分析_大数据实战 目标: spark系列软件的伪分布式的安装.配置.编译 spark的使用 系统: mac 10.13.3 /ubuntu 16.06,两个 ...
- 【原】Spark中Client源码分析(二)
继续前一篇的内容.前一篇内容为: Spark中Client源码分析(一)http://www.cnblogs.com/yourarebest/p/5313006.html DriverClient中的 ...
- 【原】Spark中Master源码分析(二)
继续上一篇的内容.上一篇的内容为: Spark中Master源码分析(一) http://www.cnblogs.com/yourarebest/p/5312965.html 4.receive方法, ...
- 【原】Spark中Master源码分析(一)
Master作为集群的Manager,对于集群的健壮运行发挥着十分重要的作用.下面,我们一起了解一下Master是听从Client(Leader)的号召,如何管理好Worker的吧. 1.家当(静态属 ...
- 【原】 Spark中Worker源码分析(二)
继续前一篇的内容.前一篇内容为: Spark中Worker源码分析(一)http://www.cnblogs.com/yourarebest/p/5300202.html 4.receive方法, r ...
- Spark Scheduler模块源码分析之TaskScheduler和SchedulerBackend
本文是Scheduler模块源码分析的第二篇,第一篇Spark Scheduler模块源码分析之DAGScheduler主要分析了DAGScheduler.本文接下来结合Spark-1.6.0的源码继 ...
- Spark Scheduler模块源码分析之DAGScheduler
本文主要结合Spark-1.6.0的源码,对Spark中任务调度模块的执行过程进行分析.Spark Application在遇到Action操作时才会真正的提交任务并进行计算.这时Spark会根据Ac ...
- Apache 流框架 Flink,Spark Streaming,Storm对比分析(一)
本文由 网易云发布. 1.Flink架构及特性分析 Flink是个相当早的项目,开始于2008年,但只在最近才得到注意.Flink是原生的流处理系统,提供high level的API.Flink也提 ...
随机推荐
- Guava源码学习(二)Ordering
基于版本:Guava 22.0 Wiki:Ordering 0. Ordering简介 Guava的Ordering提供了链式风格的比较器的实现,我们可以用Ordering轻松构建复杂的比较器. 1. ...
- printf()函数不能直接输出string类型
因为string不是c语言的内置数据,所以直接printf输出string类型的是办不到的. 要这样输出: printf("%s\n",a.c_str()); 举例: #inclu ...
- (14)oracle数据字典
http://czmmiao.iteye.com/blog/1258462 数据字典解释 1.user_tables 查询用户所拥有的所有表 select table_name from user_t ...
- 51nod 1596 搬货物【贪心/二进制】
1596 搬货物 题目来源: CodeForces 基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题 收藏 取消关注 现在有n个货物,第i个货物的重量是 2wi ...
- C# 事件和Unity3D
http://zijan.iteye.com/blog/871207 翻译自: http://www.everyday3d.com/blog/index.php/2010/10/04/c-events ...
- mac下eclipse导入windows项目文件乱码
右键property->resource没有GBK,手工输入"GBK"项目正常. 一开始用windows被坑了,如果再用windows平台,第一时间将encoding改成UT ...
- 使用Python3解压gz、tar、tgz、zip、rar五种格式的压缩文件例子
使用Python3解压如下五种压缩文件:gz.tar.tgz.zip.rar 简介 gz: 即gzip,通常只能压缩一个文件.与tar结合起来就可以实现先打包,再压缩. tar: linux系统下的打 ...
- UVA 1665 Islands
题意:输入一个n*m矩阵,每一个格子都有一个正整数,再输入T个整数ti,对于每一个ti,输出大于ti的正整数组成多少个四连快 思路:正着做的话事实上相当于删除连通块,而假设反着做的话就相当于变成添加连 ...
- flume学习(四):Flume Interceptors的使用
转载:http://blog.csdn.net/xiao_jun_0820/article/details/38111305 对于flume拦截器,我的理解是:在app(应用程序日志)和 source ...
- 如果你还有以下这些现象,那你仍是PHP菜鸟:
最近看了个文章,写的很精辟,跟大家分享一下,这也是我的目标: 如果你还有以下这些现象,那你仍是PHP菜鸟:1. 不会利用如phpDoc这样的工具来恰当地注释你的代码:2. 对优秀的集成开发环境如Zen ...