Action算子
無輸出
foreach
對RDD每個元素執(zhí)行函數(shù)f,不反悔RDD和Array,而是返回Unit

輸出到HDFS
saveAsTextFile
數(shù)據(jù)輸出,存儲到HDFS
將RDD中的元素映射到(Null,x.toString),然后寫入HDFS

saveAsObjectFile
將分區(qū)中的每10個元素組成一個Array,然后將Array序列化,映射為(Null,BytesWritable(Y))寫入HDFS的SequenceFile格式

Scala集合或數(shù)據(jù)
collect
相當于toArray,將分布RDD轉換為單機Array

collectAsMap
對(K,V)型的RDD數(shù)據(jù)返回一個單機HashMap,對于重復Key,后面的元素覆蓋前面的

reduceByKeyLocally
先reduce,再collectAsMap
lookup
對(K,V)型的RDD操作,返回指定key對應的元素形成Seq
如果RDD包含分區(qū)器,只處理K所在的分區(qū),如果不存在分區(qū)器,對全部RDD元素進行掃描

count
返回RDD元素個數(shù)
top、take
返回最大、最小的K個元素
takeOrdered
返回最小的K個元素,返回數(shù)組中保持元素順序
first
相當于top(1)
reduce
對兩個元素K,V進行reduce函數(shù)操作,將結果和迭代器取出的下一個元素進行reduce操作,直到遍歷完所有元素
f(A,B)=>(A.1+"@"+B.1, A._2+B._2)

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

aggregate
將每個分區(qū)里面的元素進行聚合,然后用combine函數(shù)將每個分區(qū)的結果和初始值(zeroValue)進行combine操作。這個函數(shù)最終返回的類型不需要和RDD中元素類型一致