Spark(4)——transformation、action、persist

100 阅读1分钟

RDD数据是不可变的:
在这里插入图片描述

transformation

将一个RDD变成一个新的RDD’
比如mapreduce中的map操作,将数据集里的元素做处理变成新的元素,形成RDD’。transformation是不会立刻将结果算出来的,相当于把你的意图记下来,最后还要经过action这样的刺激才会返回计算结果。如下几个算子属于transformation操作:
(1)map(func)操作,上图已经用到
(2)filter(func)操作,将满足函数的元素返回true值并保存,不满足的过滤掉
(3)flatMap(func)操作,先将元素进行map,再把所得到的所有元素变成一个对象:
<1>flatMap
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
<2>map
在这里插入图片描述
对比可以看出,map出来的还是两个对象,而flatMap出来的对象只有一个。
(4)union、intersection
求两个RDD之间的并集与交集
(5)groupByKey
将元组中的第0个元素当做key,进行分组

action

就像上面所说的transformation,它是惰性的,必须要有一个东西刺激它才会出结果,action就派上了用场,如下也有一些action算子:
(1)collect
(2)reduce
(3)first

persisit

此操作将数据缓存在内存或者磁盘上。
其实还有一些算子没有列出,欢迎大家补充指正