Spark程序 "Hello World!"实例
来源:互联网 发布:淘宝王者代练可靠吗 编辑:程序博客网 时间:2024/06/16 05:36
简单介绍第一个程序"Hello World!",就是存储于HDFS的Log文件中计算出"Hello World!"的行数,存储路径为hdfs://root/Log,计算代码如下:
var
sc
=
new
SparkContext(
"spark://localhost:6030"
,
"Hello world!"
,
"YOUR_SPARK_HOME"
,
"YOUR_APP_JAR"
)
var
file
=
sc.textFile(
"hdfs:////root/Log"
)
var
filterRDD
=
file.filter(
_
.contains(
"Hello World!"
))
filterRDD.cache()
filterRDD.count()
行1对于所有的Spark的程序而言,要进行任何操作前需要创建一个Spark的上下文,在创建上下文的过程中,程序会向集群申请资源以及构建相应的运行环境。一般来说,创建SparkContext对象需要传入四个变量如下:
1
、变量就是Spark程序运行的集群地址,如“spark
:
//localhost:6030”(假设集群在本地启动监听6030端口);
2
、参数是Spark程序的标识;
3
、参数需要指明Spark安装的路径;
4
、参数需要传入Spark程序的jar包路径。
行2通过sc变量利用textFile接口从HDFS文件系统中读取Log文件,返回一个变量file。
行3对于file变量进行过滤操作,传入的参数是一个function对象,function的原型p:(A) => Boolean,对于file中的每行字符串判断是否含有“Hello World!”字符串的文本行数。
行4对filterRdd进行cache操作,以便后续操作重用filterRdd此变量。
行5对filterRdd进行count计数曹总,最后返回包含“Hello World!”字符串的文本行数。
此五行代码涉及了Spark重要的概念,如下:
1、弹性分布式数据集RDD(Resilient Distributed DataSets);
2、创建操作(creation operation):RDD的初始创建都是由SparkContext来负责的,将内存中的集合或者外部文件系统作为输入源;
3、转换操作(transformation operation):将一个RDD通过一定的操作变换成另一个RDD,如file这个RDD通过一个filter操作变换成filterRDD,因此filter就是一个转换操作;
4、控制操作(control operation):对RDD进行持久化,可以让RDD保存在磁盘或者内存中,以便后续重复使用。如cache接口默认将filterRDD缓存在内存中;
5、行动操作(action operation):由于Spark是惰性计算(lazy computing)的,所以对于任何RDD进行行动操作,都会触发Spark作业的运行,从而产生最终的结果。如我们队filterRDD进行的count操作就是一个行动操作。
Spark中的行动操作基本分为两类,一类操作结果变为Scala集合或者标量,另一个就是将RDD报错到外部文件或者数据库中。
转载地址:http://blog.yoodb.com/yoodb/article/detail/216
- Spark程序 "Hello World!"实例
- Qt-简单程序实例Hello,world
- Spark,Hello World
- Struts2 Hello World实例
- Struts2 Hello World 实例
- Spring Hello World 实例
- Struts2 Hello World 实例
- Struts2 Hello World 实例
- Servlet 实例hello world
- Spring Hello World 实例
- Spring hello world实例
- Spring Hello World 实例
- Spring hello world实例
- Struts2 Hello World 实例
- Spring4--Hello World实例
- Spring hello world实例
- Go Hello World 实例
- Linux Socket编程实例(一个Hello World程序)
- 第三篇:Linux的简单操作(文字界面)(搬移自我的新浪博客)
- 对数线性模型之一(逻辑回归), 广义线性模型学习总结
- NERDTree插件
- 笔记:代码整洁之道
- JAVA_SE基础——8.基本数据类型
- Spark程序 "Hello World!"实例
- Objective-C、C++以及C之间的区别
- 从现实问题到计算机程序
- Modern Methods for Sentiment Analysis
- 磨刀:mac 上简洁搭建ejabberd 环境
- web开发常见安全问题
- 第四篇:Linux文件系统的介绍(搬移自我的新浪博客)
- Git简单教程(一)--简介
- HTTP应用:模拟灌水机器人