手记

Spark 算子- Action

Action算子

无输出

foreach
对RDD每个元素执行函数f,不反悔RDD和Array,而是返回Unit

foreach


输出到HDFS

saveAsTextFile
数据输出,存储到HDFS
将RDD中的元素映射到(Null,x.toString),然后写入HDFS

saveAsTextFile


saveAsObjectFile
将分区中的每10个元素组成一个Array,然后将Array序列化,映射为(Null,BytesWritable(Y))写入HDFS的SequenceFile格式

saveAsObjectFile


Scala集合或数据

collect
相当于toArray,将分布RDD转换为单机Array

collect


collectAsMap
对(K,V)型的RDD数据返回一个单机HashMap,对于重复Key,后面的元素覆盖前面的

collectAsMap


reduceByKeyLocally
先reduce,再collectAsMap

lookup
对(K,V)型的RDD操作,返回指定key对应的元素形成Seq
如果RDD包含分区器,只处理K所在的分区,如果不存在分区器,对全部RDD元素进行扫描

lookup


count
返回RDD元素个数

top、take
返回最大、最小的K个元素

takeOrdered
返回最小的K个元素,返回数组中保持元素顺序

first
相当于top(1)

reduce
对两个元素K,V进行reduce函数操作,将结果和迭代器取出的下一个元素进行reduce操作,直到遍历完所有元素
f(A,B)=>(A.1+"@"+B.1, A._2+B._2)

reduce


fold
与reduce原理相同
相当于每个reduce时,迭代器取的一个元素是zeroValue
fold(("V0", 2))((A, B)=>(A.1+"@"+B.1, A._2+B._2))

fold


aggregate
将每个分区里面的元素进行聚合,然后用combine函数将每个分区的结果和初始值(zeroValue)进行combine操作。这个函数最终返回的类型不需要和RDD中元素类型一致



作者:Alex90
链接:https://www.jianshu.com/p/2fdbb890e4e4


0人推荐
随时随地看视频
慕课网APP