RDD变换

    1. 返回指向新rdd的指针,在rdd之间创建依赖关系。每个rdd都有计算函数和指向父RDD的指针。
    2. map() //对每个元素进行变换,应用变换函数
    3. //(T)=>V
    4. filter() //过滤器,(T)=>Boolean
    5. flatMap() //压扁,T => TraversableOnce[U]
    6. mapPartitions() //对每个分区进行应用变换,输入的Iterator,返回新的迭代器,可以对分区进行函数处理。
    7. //Iterator<T> => Iterator<U>
    8. mapPartitionsWithIndex(func) //同上,(Int, Iterator<T>) => Iterator<U>
    9. sample(withReplacement, fraction, seed) //采样返回采样的RDD子集。
    10. //withReplacement 元素是否可以多次采样.
    11. //fraction : 期望采样数量.[0,1]
    12. union() //类似于mysql union操作。
    13. //select * from persons where id < 10
    14. //union select * from id persons where id > 29 ;
    15. intersection //交集,提取两个rdd中都含有的元素。
    16. distinct([numTasks])) //去重,去除重复的元素。
    17. groupByKey() //(K,V) => (K,Iterable<V>)
    18. reduceByKey(*) //按key聚合。
    19. aggregateByKey(zeroValue)(seqOp, combOp, [numTasks])
    20. //按照key进行聚合
    21. key:String U:Int = 0
    22. sortByKey //排序
    23. join(otherDataset, [numTasks]) //连接,(K,V).join(K,W) =>(K,(V,W))
    24. cogroup //协分组
    25. //(K,V).cogroup(K,W) =>(K,(Iterable<V>,Iterable<!-- <W> -->))
    26. cartesian(otherDataset) //笛卡尔积,RR[T] RDD[U] => RDD[(T,U)]
    27. pipe //将rdd的元素传递给脚本或者命令,执行结果返回形成新的RDD
    28. coalesce(numPartitions) //减少分区
    29. repartition //可增可减
    30. repartitionAndSortWithinPartitions(partitioner)
    31. //再分区并在分区内进行排序

    RDD Action

    1. collect() //收集rdd元素形成数组.
    2. count() //统计rdd元素的个数
    3. reduce() //聚合,返回一个值。
    4. first //取出第一个元素take(1)
    5. take //
    6. takeSample (withReplacement,num, [seed])
    7. takeOrdered(n, [ordering])
    8. saveAsTextFile(path) //保存到文件
    9. saveAsSequenceFile(path) //保存成序列文件
    10. saveAsObjectFile(path) (Java and Scala)
    11. countByKey() //按照key,统计每个key下value的个数.