SparkCore是spark的核心内容,是早起实现数据处理的主要Spark工具,前面说了SparkCore数据处理就是就是RDD之间的互相转换,那么怎么样让RDD实现随心所欲的转换呢?
Spark算子主要分为两大类Transformations、Action,推荐Spark官网地址。
1、Transformations算子
哈哈哈,先说说Transformations算子,因为刚开始学习Spark那会,Transformations算子总是让我头皮发麻,map算子已经是我理解的极限了,想想都是泪了。但是作为过来人,很高兴的是刀山火海后已经了解了,哈哈哈哈哈哈。好了 ,我是菜鸟,至于transformations算子,实际上是一种惰性算子,何为惰性,相当于老师布置了作业,但是不催我就是不写,哎,就是玩。只有这合适的触发器(action算子,相当于老师的苦口婆心)下。才会执行。那Transformations算子有哪些呢,怎么用?为什么要用?主要是实现什么功能呢?
这里是官网描述的常用Transformations算子。
transformations | 算子类型 | Meaning or funcrton |
---|---|---|
map(func) | 单值算子 | 传递一个函数,将原RDD中每一个元素经过函数操作,转换成新的RDD,注意RDD的类型没有变,只是RDD中的元素经过一对一转换成为了新的数值或者数据类型,这个应该是最朴素的RDD转换算子 |
filter(func) | 单值算子 | 过滤算子,将原RDD的元素经过过滤条件,如果为真则留下,为假则过滤掉。 |
flatMap(func) | 单值算子 | 数据扁平化算子,对集合中每个元素进行操作然后再扁平化。所谓扁平化,我理解的就是降维。 |
mapPartitions(func) | 单值算子 | 类似于 map,但是不同处在于map针对单个元素, |