欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

走进Spark生态圈:RDD及其相关操作

程序员文章站 2022-06-01 21:11:29
...

概念

RDD(Resilient Distributed Datasets): 分布式弹性数据集,是Spark中最基本的数据抽象,不可变(只读),可分区,可以运行在分布式集群上,Spark中的所有的操作都是以RRD进行的,主要分为两种类型的操作:转化操作和执行操作

分区(Partitions): RDD实际存储的是数据集合的一组分区,由于有分区的存在才可以让数据集运行在分布式集群上,一个分区只能运行在一个Worker上面,但是一个Worker却可以运行在多个分区上面

转化操作(Transformations): 将RDD转化为另一种形式的RDD,只是将转化操作记录在数据集上,并不立即执行的懒加载操作,当触发执行操作的时候才执行

执行操作(Actions):计算RDD经过一系列操作后的结果

走进Spark生态圈:运行程序在Spark集群中WordCount为例展示应用在RDD上的操作类型

val result = sc.textFile("application/files/greeting.txt") /*创建RDD*/
               .flatMap(_.split(" ")) /*转化RDD*/
               .map((_,1))/*转化RDD*/
               .reduceByKey(_+_)/*执行RDD*/
               .saveAsTextFile ( "applications/files/out/wordcount")/*执行操作*/

当执行转化操作的时候并没有立即看到结果,为了立即看到结果需要执行执行操作,上节中我们使用collect方法查看结果

RDD常用操作

以下操作均已sc代替SparkContext对象

创建RDD

  • 从外部数据集加载RDD :sc.textFile() sc.sequenceFile() sc.objectFile

  • 从Scala数据集中加载RDD:sc.parallelize()

转化RDD操作(Transformations)

走进Spark生态圈:RDD及其相关操作

执行RDD操作(Actions)

走进Spark生态圈:RDD及其相关操作

更多RDD操作

请参考:
http://spark.apache.org/docs/latest/rdd-programming-guide.html#rdd-operations
http://homepage.cs.latrobe.edu.au/zhe/ZhenHeSparkRDDAPIExamples.html

相关标签: spark RDD