作者:过往记忆 | 新浪微博:左手牵右手TEL | 能够转载, 但必须以超链接形式标明文章原始出处和作者信息及版权声明 博客地址:http://www.iteblog.com/ 文章标题:《Spark高速入门指南(Quick Start Spark)》 本文链接:http://www.iteblog.com/archives/1040 Hadoop、Hive、Hbase、Flume等QQ交流群:138615359(已满),请增加新群:149892483 本博客的微信公共帐号为:iteblog_hadoop。欢迎大家关注。 假设你认为本文对你有帮助,最好还是分享一次,你的每次支持。都是对我最大的鼓舞 | ![]() 欢迎关注微信公共帐号 |
这个文档仅仅是简单的介绍怎样高速地使用Spark。
在以下的介绍中我将介绍怎样通过Spark的交互式shell来使用API。
Basics
Spark shell提供一种简单的方式来学习它的API,同一时候也提供强大的方式来交互式地分析数据。Spark shell支持Scala和Python。能够通过以下方式进入到Spark shell中。
Spark的一个基本抽象概念就是RDD。RDDs能够通过Hadoop InputFormats或者通过其它的RDDs通过transforming来得到。
以下的样例是通过载入SPARK_HOME文件夹下的README文件来构建一个新的RDD
RDDs提供actions操作。通过它能够返回值。同一时候还提供 transformations操作,通过它能够返回一个新的RDD的引用。例如以下:
我们再试试transformations操作,以下的样例中我们通过使用filter transformation来一个新的RDD:
我们将transformations操作和actions操作连起来操作:
很多其它关于RDD上面的操作
RDD的transformations操作和actions操作能够用于更复杂的计算。以下的样例是找出README.md文件里单词数最多的行有多少个单词
map函数负责将line依照空格切割,并得到这行单词的数量,而reduce函数将获取文件里单词数最多的行有多少个单词。map和reduce函数的參数是Scala的函数式编程风格。我们能够直接用Java里面的Math.max()函数,这样会使得这段代码更好理解
我们比較熟悉的一种数据流模式是MapReduce。Spark能够非常easy地实现MapReduce流
在上面的代码中,我们结合了flatMap,map和reduceByKey等transformations 操作来计算文件里每一个单词的数量。并生成一个(String, Int) pairs形式的RDD。为了计算单词的数量。我们能够用collect action来实现:
Caching
Spark能够将数据集存放在集群中的缓存中。这个在数据集常常被訪问的场景下非常实用。比方hot数据集的查询,或者像PageRank这种须要迭代非常多次的算法。作为一个简单的列子。以下是将我们自己的linesWithSpark dataset存入到缓存中:
利用Spark来缓存100行的数据看起来有点傻,可是我们能够通过相同的函数来存储非常大的数据集,甚至这些数据集分布在几十或者几百台节点上。
本文翻译自Spark中的文档,本文地址:《Spark高速入门指南(Quick Start Spark)》:http://www.iteblog.com/archives/1040,过往记忆,大量关于Hadoop、Spark等个人原创技术博客本博客文章除特别声明,所有都是原创!
尊重原创。转载请注明: 转载自过往记忆(http://www.iteblog.com/)
本文链接地址: 《Spark高速入门指南(Quick Start Spark)》(http://www.iteblog.com/archives/1040)
E-mail:wyphao.2007@163.com