PySpark RDD有几种类型算子?
算子:分布式集合对象上的API称之为算子。
RDD的算子分为两类:
Transformation:转换算子;
Action:动作(行动)算子。
Transformation算子
1 值类型valueType
map: map(func):

将func函数作用到数据集的每一个元素上,生成一个新的RDD返回。
map: map(func):

自定义Python函数:
上述代码类似于:

groupBy

Filter:
filter(func) 选出所有func返回值为true的元素,生成一个新的RDD返回

Flatmap:
flatMap会先执行map的操作,再将所有对象合并为一个对象

flatMap和map的区别:
flatMap在map的基础上将结果合并到一个list中
2 双值类型DoubleValueType
Union:对两个RDD求并集
Intersection:对两个RDD求交集
3 Key-Value值类型
groupByKey:
以元组中的第0个元素作为key,进行分组,返回一个新的RDD
groupByKey之后的结果中 value是一个Iterable
reduceByKey:将key相同的键值对,按照Function进行计算
sortByKey:根据key进行排序
countByValue
Action算子
collect
返回一个list,list中包含 RDD中的所有元素
只有当数据量较小的时候使用Collect 因为所有的结果都会加载到内存中
reduce
reduce将RDD中元素两两传递给输入函数,同时产生一个新的值,新产生的值与RDD中下一个元素再被传递给输入函数直到最后只有一个值为止。
first
返回RDD的第一个元素
take
返回RDD的前N个元素,`take`(*num*)
Top:排序取前几个从大到小
Count:返回RDD中元素的个数
takeSample

foreach
仅返回满足foreach内函数条件元素。在下面的示例中,我们在foreach中调用print函数,它打印RDD中的所有元素。

