spark----rdd变化,action

RDD变换
------------------
    返回指向新rdd的指针,在rdd之间创建依赖关系。每个rdd都有计算函数和指向父RDD的指针。
    
    map()                                    //对每个元素进行变换,应用变换函数
                                            //(T)=>V


    filter()                                //过滤器,(T)=>Boolean
    flatMap()                                //压扁,T => TraversableOnce[U]

    mapPartitions()                            //对每个分区进行应用变换,输入的Iterator,返回新的迭代器,可以对分区进行函数处理。
                                            //Iterator<T> => Iterator<U>

    mapPartitionsWithIndex(func)            //同上,(Int, Iterator<T>) => Iterator<U>

    sample(withReplacement, fraction, seed)    //采样返回采样的RDD子集。
                                            //withReplacement 元素是否可以多次采样.
                                            //fraction : 期望采样数量.[0,1]

    union()                                    //类似于mysql union操作。
                                            //select * from persons where id < 10 
                                            //union select * from id persons where id > 29 ;

    intersection                            //交集,提取两个rdd中都含有的元素。
    distinct([numTasks]))                    //去重,去除重复的元素。

    groupByKey()                            //(K,V) => (K,Iterable<V>)

    reduceByKey(*)                            //按key聚合。 

    aggregateByKey(zeroValue)(seqOp, combOp, [numTasks])
                                            //按照key进行聚合
    key:String U:Int = 0

    sortByKey                                //排序

    join(otherDataset, [numTasks])            //连接,(K,V).join(K,W) =>(K,(V,W)) 

    cogroup                                    //协分组
                                            //(K,V).cogroup(K,W) =>(K,(Iterable<V>,Iterable<!-- <W> -->)) 
    cartesian(otherDataset)                    //笛卡尔积,RR[T] RDD[U] => RDD[(T,U)]

    pipe                                    //将rdd的元素传递给脚本或者命令,执行结果返回形成新的RDD
    coalesce(numPartitions)                    //减少分区
    repartition                                //可增可减
    repartitionAndSortWithinPartitions(partitioner)
                                            //再分区并在分区内进行排序


RDD Action
------------------
    collect()                                //收集rdd元素形成数组.
    count()                                    //统计rdd元素的个数
    reduce()                                //聚合,返回一个值。
    first                                    //取出第一个元素take(1)
    take                                    //
    takeSample (withReplacement,num, [seed])
    takeOrdered(n, [ordering])
    
    saveAsTextFile(path)                    //保存到文件
    saveAsSequenceFile(path)                //保存成序列文件

    saveAsObjectFile(path) (Java and Scala)

    countByKey()                            //按照key,统计每个key下value的个数.
    
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值