transformation:rdd---->rdd转换(懒加载)
action: rdd---->其他的东西 (真正执行作业)
算子操作
getNumPartitions:查看几个分区
glom:查看rdd每个分区中有哪些数据
reduceByKey:transformation(通过键计算)
reduce:action(计算所有数据,同种元素类型数据)
fold(计算所有数据,同种元素类型数据,每个reduce 迭代器取得第一个元素是zeroValue(比如下面的v0@))
mapedRDD.fold("v0@",2)((tuple1,tuple2) => (tuple1._1+"@"+tuple2._1,tuple1._2+tuple2._2))
aggregate(可以对两个不同类型的元素进行聚合)
pairRdd.aggregate("0",0)((x,y) => (x._1+"@"+y._1,x._2+y._2),(x,y) => (x._1+"@"+y._1,x._2+y._2))
coalesce(减少分区,不进行shuffle)
repartition(增加或减少分区,进行shuffle)
zipWithIndex(排序标号)
窄依赖各个算子分区数不变