网站大量收购独家精品文档,联系QQ:2885784924

Spark简介课件.ppt

  1. 1、本文档共60页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Spark简介课件.ppt

Actions .foreach(println) 风格:把函数println当作参数传递给函数foreach 例子 - 计算bad的个数 errorsRDD = inputRDD.filter(line.contains(error)) warningsRDD = inputRDD.filter(line.contains(warning)) badLinesRDD = errorsRDD.union(warningsRDD) println(badLinesRDD.count() ) badLinesRDD.take(1).foreach(println)//使用take()取前1个数据 Actions top() 排序(根据RDD中数据的比较器) takeSample(withReplacement, num, seed) 取样例,是否需要替换值。 countByValue() 返回一个map,表示唯一元素出现的个数 Spark的核心概念 向Spark传递函数: 需要注意的地方: 如果你传递的函数是一个对象的成员,或者包含一个对象中字段的引用(例如self.field),Spark会把整个对象都发送到工作节点上,这样会比仅仅发送你关心的信息要大很多,而且有时候会带来一些奇怪的问题。 传送信息太多解决方法:我们可以把关心的字段抽取出来,只传递关心的字段。 奇怪问题的避免:序列化包含函数的对象,函数和函数中引用的数据都需要序列化(实现Java的Serializable interface)。 如果Scala中出现NotSerializableException,一般情况下,都是因为没序列化。 RDDs介绍 RDDs介绍 RDDs的创建方法 Scala的基础知识 RDDs介绍 RDDs Resilient distributed datasets(弹性分布式数据集,简写RDDs)。 一个RDD就是一个不可改变的分布式集合对象,内部由许多partitions(分片)组成,每个partition都包括一部分数据,这些partitions可以在集群的不同节点上计算 Partitions是Spark中的并行处理的单元。Spark顺序的,并行的处理partitions。 RDDs 是 Spark的分发数据和计算的基础抽象类,是Spark的核心概念。 RDD可以包含 Python, Java, 或者 Scala中的任何数据类型,包括用户自定义的类。 在Spark中,所有的计算都是通过RDDs的创建,转换,操作完成的。 RDD具有lineage graph(血统关系图)。 RDDs的创建方法 Driver program中创建RDDs: 把一个存在的集合传给SparkContext’s parallelize()方法。这种方法,一般只适用于学习时。 例子: val lines = sc.parallelize(List(spark, bigdatastudy)) val rdd = sc.parallelize(Array(1, 2, 2, 4), 4) ... 注意一下RDD的类型 第一个参数是:待并行化处理的集合 第二个参数是:分区个数 RDDs的创建方法 加载外部数据集: 例子:使用textFile() 加载 val rddText= sc.textFile(../../testfile/helloSpark) val rddHdfs = sc.textFile(hdfs:///some/path.txt) Scala的基础知识 Scala的变量声明 在Scala中创建变量的时候,必须使用val或者var Val,变量值不可修改,一旦分配不能重新指向别的值 Var,分配后,可以指向类型相同的值。 Scala的基础知识 Scala的变量声明 val lines= sc.textFile(../../testfile/helloSpark) lines= sc.textFile(../../testfile/helloSpark2) ... console: error: reassignment to val var lines2= sc.textFile(../../testfile/helloSpark) lines2= sc.textFile(../../testfile/helloSpark2) 可以重新声明变量 val lines= sc.textFile(../../testfile/helloSpark2) Scala的基础知识 Scala的匿名函数 像Python的lambda 函数 lines.filter(line = line.contains(world)) ... 我们定义一个匿名函数,接收一个参

文档评论(0)

钱缘 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档