Spark Programming Guide

所需积分/C币:9 2015-08-15 10:28:39 2.48MB PDF
9
收藏 收藏
举报

该文档适合初步学习Spark的人使用,是中文文档,阅读方便。涵盖了Spark RDD的使用,Spark SQL,Spark MLlib,Spark Streaming,Spark GraphX。另外还有案例代码。
iV. Pregel API V.图构造者 顶点和边RDDs Vi.图算法 vi例子 7.部署 提交应用程序 独立运行Spa il在yarn上运行 Spark 8.更多文档 . Spark配置 Spark编程指南简体中文版 Introductio 快速上手 Spark Shell 独立应用程序 σ开始翻滚吧! 編程指南 引入 Spark 初始化 Spark a Spark RDDs 并行集合 外部数据集 RDD操作 ■传递函数到 Spark 使用键值对 Transformation Actions RDD持久化 共享变量 从这里开始 · Spark Streaming 个快速的例子 基本概念 关联 初始化 Streaming Context 离散流 输入 STreams DStream中的转换 DStream的输出操作 缓存或持久化 Checkpointing 部署应用程序 监控应用程序 性能凋优 减少批数据的执行时间 没置正确的批容量 内存凋优 容错浯义 Spark sQ 开始 数据源 RDDS et文件 JSON数据集 Hive表 o性能凋优 其它SQL接口 编写浯言集成( Language-Integrated的相关查询 o Spark SQL数据类型 GraphX编程指南 开始 属性图 图操作符 o Pregel API 图构造者 顶点和边RDDs 图算法 例子 部署 提交应用程序 独立运行Spa a在yarn上运行 Spark 更多文档 o Spark配置 Copyright 本文翻译自 Spark官方文档 License 本文使用的许可请查看这里 快速上手 本节课程提供一个使用 Spark的快速介绍,首先我们使用 Spark的交互式she(用 Python或Scla)介绍它的APl。当演示 如何在Java,scaa和 Python写独立的程序吋,看编程指南里完整的参考。 依照这个指南,首先从 Spark网站下载一个Spak发行包。因为我们不会使用HDFS,你可以下载任何 Hadoop版本的包。 Spark She 独立应用程序 开始翻滚吧! 使用 Spark Shel 基础 Spark的she作为一个强大的交互式数据分析工具,提供了一个简单的方式来学习APlb它可以使用 Scala(在Java虚拟机 上运行现有的Java库的一个很好方式)或 Python。在 Spark目录里使用下面的方式开始运行 bin/spark-shell Spark最主要的抽象是叫 Resilient distributed dataset(RDD)的弹性分布式集合。RDDs可以使用 Hadoop InputFormats(例 如HDFS文件)创建,也可以从其他的RDDs转换。让我们在 Spark源代码目录从 README文本文件中创建一个新的 RDD scala> val textFile= sc textFile("README. md") textFile: spark RDD[String]= spark. MappedRDDg2eegb6e3 RDD的 actions从RDD中返回值, transformations可以转换成一个新RDD并返回它的引用。让我们开始使用几个操作 scala textfile. count()//RDD的数据粲数 reso: Long=126 cala> textfile. first()//RDD的第一行数据 es1: String = Apache Spark 现在让我们使用一个 transformation,我们将使用fter在这个文件里返回一个包含子数据集的新RDD scala> val linesw'ithSpark= textFile. filter(line = line contains(" Spark)) lineswithspark: spark RDD[String]= spark. FilteredRDDO7dd4af09 我们可以把 actions和 transformations链接在一起 scala> textfile. filter(1ine=>1ine. contains(" Spar k")). count()//有多少行包括" spark"? res: Long =15 更多RDD操作 RDD actions和 transformations能被用在更多的复杂计算中。比方说,我们想要找到一行中最多的单词数量 scala> textFile. map(line = line, split( ).size). reduce(a, b if (a> b)a else b) res4: Long =15 首先将行映射成一个整型数值产生一个新RDD。在这个新的RDD上凋用 reduce找到行中最大的个数。map和 reduce 的参数是Scaa的函数串(闭包),并且可以使用任何活舌特性或者 Scala/Java类库。例如,我们可以很方便地凋用其他的函 数声明。我们使用Math.max()函数让代码更容易理解 scala import Java. lang Math import java. lang Math scala> textFile. map(line = line split( ).size).reduce((a, b)=> Math. max(a, b)) res5: int =15 Hadoop流行的一个通用的数据流模式是 MapReduce。 Spark能很容易地实现 MapReduce: cala> val wordcounts= textFile. flatMap(line = line split()). map(word =>(word, 1)). reduceByKey ((a, b)=> a+b) wordCounts: spark RDD[(String, Int)= spark. ShuffledAggregatedRDD@71f027b8 这里,我们结合 flatMap,map和 reduce ByKey来计算文件里每个单词出现的数量,它的结果是包含一组( String,nt)键值对 的RDD。我们可以使用[ collect操作在我们的shel中收集单词的数量 scala> wor aCounts. collect( res6: Array[(string, Int)]= Array(( means, 1)r(under, 2),(this, 3),(Because, 1),(Python, 2),(agree, 1),(cluster, 1) 缓存 Spark支持把数据集拉到集群内的内存缓存中。当要重复访问时这是非常有用的,例如当我们在一个小的热(o)数据集中查 询,或者运行—个像网页搜索排序这样的重复算法。作为一个简单的例子,让我们把1 ineswithspar k数据集标记在缓存中 scala>lineslithSparkcache() res7: spark RDD[String]= spark. FilteredRDDO17e51082 scala> lineswithspar k counto resB: Long 15 scala> lineswithspar k counto) res: Long 15 缓存100行的文本文件来研究 Spark这看起来很傻。真正让人感兴趣的部分是我们可以在非常大型的数据集中使用同样的函 数,甚至在⑩0个或者100个节点中交叉计算。你同样可以使用bin/ spark-shel1连接到一个 cluster来替换掉编程指南中的 方法进行交互操作。 独立应用程序 现在假设我们想要使用 Spark AP|写一个独立的应用程序。我们将通过使用 Scala(用sBT,Java(用 Maven)和 Python写 个简单的应用程序来学习。 我们用 Scala创建一个非常简单的 Spark应用程序。如此筒单,事实上它的名字叫 SimpleApp. scala /x SimpleApp, scala */ import org. apache. spark. SparkContext import org. apache, spark. SparkContext import org. apache. spark. SparkConf object SimpleApp def main(args: Array [string)i val1 agIle=" YOUR SPARK HOME/ README,md"//应该是你系统上的某些文件 val conf new spar kconf(). setAppName ("Simple Application") val logData SC, textFile(logFile, 2) cache() val numAs logData filter(line = line contains(a)).count() val numBs logData filter(line = line contains (b)).count() printin( Lines with a: %s, Lines with b: %s. format( numAs, numBs)) 这个程序仅仅是在 Spark READme中计算行里面包含'a'和包含b的次数。你需要注意将 YOUR SPARK HOME替换成你已经 安裝 Spark的路径。不像之前的 Spark she‖例子,这里初始化了自己的 SparkContext,我们把 SparkContext初始化作为 程序的一部分。 我们通过 SparkContext的构造函数参入 SparkConf对象,这个对象包含了一些关于我们程序的信息。 我们的程序依赖于 Spark API,所以我们需要包含一个st文件文件, simple.sht解释了 Spark是一个依赖。这个文件还要 补充 Spark依赖于一个 repository: name Simple Project scalaversion 2.10.4" library Dependencies +=org. apache, spar k %%spark-core%1.2.0 要让st正确工作,我们需要把 SimpleApp.sca1a和 simple.sbt按照标准的文件目录结构布局。上面的做好之后,我们可 以把程序的代码创建成一个JAR包。然后使用 spark- submit来运行我们的程序。 #f Your directory layout should look like this find /simple sbt /src /src/ main /src/ main/scala /src/main/scala/SimpleApp scala #f Package a jar containing your application s sbt package [info Packaging.3/t.3/target/scala-2,10/simple-project-_2. 10-1.0.jar t Use spark-submit to run your application s YOUR_ SPARK_HOME/bin/spar k-submit class SimpleApp "\ -master local[4\ target/scala-210/simple-project_ 2.10-1.0. jar Lines with a: 46 Lines with b: 23

...展开详情
试读 106P Spark Programming Guide
立即下载
限时抽奖 低至0.43元/次
身份认证后 购VIP低至7折
一个资源只可评论一次,评论内容不能少于5个字
您会向同学/朋友/同事推荐我们的CSDN下载吗?
谢谢参与!您的真实评价是我们改进的动力~
  • 技术圈认证

关注 私信
上传资源赚钱or赚积分
最新推荐
Spark Programming Guide 9积分/C币 立即下载
1/106
Spark Programming Guide第1页
Spark Programming Guide第2页
Spark Programming Guide第3页
Spark Programming Guide第4页
Spark Programming Guide第5页
Spark Programming Guide第6页
Spark Programming Guide第7页
Spark Programming Guide第8页
Spark Programming Guide第9页
Spark Programming Guide第10页
Spark Programming Guide第11页
Spark Programming Guide第12页
Spark Programming Guide第13页
Spark Programming Guide第14页
Spark Programming Guide第15页
Spark Programming Guide第16页
Spark Programming Guide第17页
Spark Programming Guide第18页
Spark Programming Guide第19页
Spark Programming Guide第20页

试读结束, 可继续阅读

9积分/C币 立即下载