Spark实战1:shell+独立App使用总结
Spark改进了Hadoop执行非流式算法的需要多次IO的缺陷,Spark的所有操作都是基于RDD弹性分布式数据集这种数据结构的,对RDD的操作主要的操作包括transform和action两种操作。另外,Spark对开发者好用是因为程序由其内在机制自动分布式执行,不需要程序员对分布式考虑太多,且在内存中基本不需要磁盘IO。
Spark Shell
1.1基础RDD操作
1 启动shell,进入spark安装路径。
输入 ./bin/spark-shell
2 创建RDD弹性分布式数据集:(/user/mapr/README.md)
valtextFile=sc.textFile("README.md")
3 action命令的使用:统计文本的行数。
textFile.count()
4 transform命令的使用:
vallinesWithSpark=textFile.filter(line=>line.contains("Spark"))
5 action命令和transform命令的结合使用
textFile.filter(line=>line.contains("Spark")).count()
1.2 其它RDD操作
1 统计单词最多的行:
textFile.map(line=>line.split(" ").size).reduce((a,b)=>if(a>b)aelseb)
运行机制:Map函数创建并返回一个新的RDD,为每行的单词数;由于惰性机制,reduce调用RDD并统计单词最多的行。
2 使用math函数,使计算过程更直观
import java.lang.Math
textFile.map(line=>line.split(" ").size).reduce((a,b)=>Math.max(a,b))
3 WordCount例子的spark版,实现更简单:
valwordCounts=textFile.flatMap(line=>line.split(" ")).map(word=>(word,1)).reduceByKey((a,b)=>a+b)
wordCounts.collect()
1.3 缓存机制
RDD内存惰性机制,只有action调用需要的RDD时,才会执行transform操作,显然只有节省了带宽。但是若多次action操作调用一个RDD,这个RDD会被计算多次,这样就引出了缓存机制的优势。
1 RDD保存到缓存中:
linesWithSpark.cache()
2 下面两次调用RDD,只执行一次计算:
linesWithSpark.count()
linesWithSpark.count()
参考官方教程:http://spark.apache.org/docs/latest/quick-start.html
Spark实战1:shell+独立App使用总结的更多相关文章
- 实战使用Axure设计App,使用WebStorm开发(6) – 迈向后端
系列文章 实战使用Axure设计App,使用WebStorm开发(1) – 用Axure描述需求 实战使用Axure设计App,使用WebStorm开发(2) – 创建 Ionic 项目 实战使 ...
- 实战使用Axure设计App,使用WebStorm开发(5) – 实现页面功能
系列文章 实战使用Axure设计App,使用WebStorm开发(1) – 用Axure描述需求 实战使用Axure设计App,使用WebStorm开发(2) – 创建 Ionic 项目 实战使 ...
- 实战使用Axure设计App,使用WebStorm开发(4) – 实现页面UI
系列文章 实战使用Axure设计App,使用WebStorm开发(1) – 用Axure描述需求 实战使用Axure设计App,使用WebStorm开发(2) – 创建 Ionic 项目 实战使 ...
- 实战使用Axure设计App,使用WebStorm开发(2) – 创建 Ionic 项目
系列文章 实战使用Axure设计App,使用WebStorm开发(1) – 用Axure描述需求 实战使用Axure设计App,使用WebStorm开发(2) – 创建 Ionic 项目 实战使 ...
- 实战使用Axure设计App,使用WebStorm开发(1) – 用Axure描述需求
系列文章 实战使用Axure设计App,使用WebStorm开发(1) – 用Axure描述需求 实战使用Axure设计App,使用WebStorm开发(2) – 创建 Ionic 项目 实战使 ...
- 实战使用Axure设计App,使用WebStorm开发(3) – 构建页面架构
系列文章 实战使用Axure设计App,使用WebStorm开发(1) – 用Axure描述需求 实战使用Axure设计App,使用WebStorm开发(2) – 创建 Ionic 项目 实战使 ...
- Spark实战1
1. RDD-(Resilient Distributed Dataset)弹性分布式数据集 Spark以RDD为核心概念开发的,它的运行也是以RDD为中心.有两种RDD:第一种是并行Col ...
- Spark GraphX宝刀出鞘,图文并茂研习图计算秘笈与熟练的掌握Scala语言【大数据Spark实战高手之路】
Spark GraphX宝刀出鞘,图文并茂研习图计算秘笈 大数据的概念与应用,正随着智能手机.平板电脑的快速流行而日渐普及,大数据中图的并行化处理一直是一个非常热门的话题.图计算正在被广泛地应用于社交 ...
- shell编程系列22--shell操作数据库实战之shell脚本与MySQL数据库交互(增删改查)
shell编程系列22--shell操作数据库实战之shell脚本与MySQL数据库交互(增删改查) Shell脚本与MySQL数据库交互(增删改查) # 环境准备:安装mariadb 数据库 [ro ...
随机推荐
- ubuntu12.04 登录黑屏
新安装的ubuntu12.04LTS,登录之后黑屏,切换到ubuntu2D能够进入UI.解决方法记录于此. 转载: http://blog.csdn.net/albertsh/article/deta ...
- 如何安装sass
1.安装ruby 2. 运行ruby时输入 gem install 及sass安装文件路径. sass安装文件见文件.
- RFS_javascript的使用
1. RFS对javascript的调用 (1)调用javascript语句 (2)调用javascript函数 2. IE8不支持javascript的 getElementsByClassName ...
- [PCL]1 PCL点云库安装
1.安装文件下载:官网,我还是比较喜欢别人编译好的安装包啊,哈哈. http://www.pointclouds.org/downloads/windows.html 2.傻瓜式安装(下面的依赖项都集 ...
- CentOS下netstat + awk 查看tcp的网络连接状态
执行以下命令: #netstat -n | awk ‘/^tcp/ {++state[$NF]} END {for(key in state) print key."\t".sta ...
- Azure Remote Desktop: "An error occurred while loading from file *.rdp"
Tonight I deployed a new cloud service where I needed remote desktop to check on some things. After ...
- TNS-01251: Cannot set trace/log directory under ADR
试图改变监听日志的名称时,报出TNS-01251错误: $ lsnrctl LSNRCTL - Production on -JUN- :: Copyright (c) , , Oracle. All ...
- XMPP协议介绍
一.xmpp协议工作原理 二.XMPP地址模式 三.xmpp消息格式 xmpp xml包括三个元素,message,presence,iq,也翻译做三种节. 在'jabber:client'和'jab ...
- Eclipse+SVN搭建开发环境
目前我们开发环境为:windows service 2008 r2 x64 现在开始记录一下eclipse+SVN环境搭建过程: 1,)下载 VisualSVN-Server-3.4.2-x64:ht ...
- j2ee ehcache
Ehcache is an open source, standards-based cache that boosts performance, offloads your database, an ...