• 1. RDDs介绍—by 球哥
  • 2. 大数据学习网介绍我们的网址是:bigdatastudy.cn 我们提供专业的大数据学习视频,包括Hadoop,Spark,Storm,Mahout,机器学习等。 我们定价合理,让每个人都学得起大数据。
  • 3. 友情提示本系列课程主要由Learning.Spark这本书整理而来。 本系列课程主要目的,帮助想要学习Spark的同学入门。 本系列课程中的ppt可自由传播,无需任何授权,但不要用于商业用途哦。 本系列课程中的视频不要自由传播哦,如果同学们觉得课程价格不合理,欢迎在下面的群中反馈,我们会考虑调整价格的。 Spark学习交流群:368770186,371896553
  • 4. RDDs介绍RDDs介绍 RDDs的创建方法 Scala的基础知识
  • 5. 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(血统关系图)。
  • 6. 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的类型 第一个参数是:待并行化处理的集合 第二个参数是:分区个数
  • 7. RDDs的创建方法加载外部数据集: 例子:使用textFile() 加载 val rddText= sc.textFile("../../testfile/helloSpark") val rddHdfs = sc.textFile("hdfs:///some/path.txt")
  • 8. Scala的基础知识Scala的变量声明 在Scala中创建变量的时候,必须使用val或者var Val,变量值不可修改,一旦分配不能重新指向别的值 Var,分配后,可以指向类型相同的值。
  • 9. Scala的基础知识Scala的变量声明 val lines= sc.textFile("../../testfile/helloSpark") lines= sc.textFile("../../testfile/helloSpark2") ... : error: reassignment to val var lines2= sc.textFile("../../testfile/helloSpark") lines2= sc.textFile("../../testfile/helloSpark2") 可以重新声明变量 val lines= sc.textFile("../../testfile/helloSpark2")
  • 10. Scala的基础知识Scala的匿名函数 像Python的lambda 函数 lines.filter(line => line.contains("world")) ... 我们定义一个匿名函数,接收一个参数line,并使用line这个String类型变量上的contains方法,并且返回结果。 line 的类型不需指定,能够推断出来
  • 11. Scala的基础知识Scala程序员就是不喜欢多写代码。 Scala允许我们用下划线"_"来代表匿名函数中的参数。 lines.filter(_.contains("world")) ...
  • 12. Scala的基础知识类型推断 def hasWorld(line:String) : Boolean={line.contains("world")} worldLines = lines.filter(hasWorld) Scala中定义函数用def,参数指定类型String,因为后面的contains方法就是用的String中的Contains方法。 函数返回的类型,可以不必指定,因为通过类型推断,能够推出来。
  • 13. Scala的基础知识类型推断 指定返回类型: 返回的类型比较复杂,Scala可能推断不出来。 程序更易读。
  • 14. 小结RDDs介绍 RDDs的创建方法 Scala的基础知识