了解Spark RDD

RDD介绍
RDD全称resilient distributed dataset(弹性分布式数据集)。他是一个弹性分布式数据集,是spark里面抽象的概念。代表的是一个不可变的,集合里面的元素可以分区的支持并行化的操作。
RDD五大特性及对应的方法

11)A list of partitions 一系列的partition
 2      protected def getPartitions: Array[Partition]
 3
 42)A function for computing each split 针对RDD做操作其实就是针对RDD底层的partition进行操作
 5    rdd.map(_*2)
 6    def compute(split: Partition, context: TaskContext): Iterator[T]
 7
 83)A list of dependencies on other RDDs rdd之间的依赖
 9      protected def getDependencies: Seq[Dependency[_]] = deps
10
114)Optionally, a Partitioner for key-value RDDs partitioner
12      @transient val partitioner: Option[Partitioner] = None
13
145)Optionally, a list of preferred locations to compute each split on  locations
15      protected def getPreferredLocations(split: Partition): Seq[String] = Nil

RDD创建方式
1.parallelize 适用于测试

1sc.parallelize(List(1,2,3,4,5))

2.External Datasets 适用于生产

1sc.textFile("data/xxx")

3.通过已有RDD转换过来的 适用于生产

1    val rdd = sc.parallelize(List(1,2,3,4,5))
2    val rdd2 = rdd.map(_*2)

**Transformations 和Action **
RDD可以分为两类,transformations和actions。
Transformations 变换/转换算子:将一个RDD转换成另一个RDD,所有的Transformation都是lazy的,只有发生action是才会触发计算。
Action 行动算子:这类算子会触发 SparkContext 提交 作业。

1举例:
 2
 3transformation
 4- Map:对数据集的每一个元素进行操作
 5- FlatMap:先对数据集进行扁平化处理,然后再Map
 6- Filter:对数据进行过滤,为true则通过
 7- destinct:去重操作
 8
 9action
10- reduce:对数据进行聚集
11- reduceBykey:对key值相同的进行操作
12- collect:没有效果的action,但是很有用
13- saveAstextFile:数据存入文件系统
14- foreach:对每个元素进行func的操作
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值