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中元素类型一致

Tags:,

Add a Comment

电子邮件地址不会被公开。 必填项已用*标注

15 − 10 =