您的位置:首页 > 其它

Spark 中算子功能与分类介绍

2017-12-11 09:15 344 查看
1. value型算子

    从输入到输出可分为一对一(包括cache)、多对一、多对多、输出分区为输入分区自激

    1)一对一,

        map,简单的一对一映射,集合不变;

        flatMap,一对一映射,并将最后映射结果整合;

        mappartitions,对分区内元素进行迭代操作,例如过滤等,然后分区不变

        glom,将分区内容转换成数据

    2)多对一,

        union,相同数据类型RDD进行合并,并不去重

        cartesian,对RDD内的所有元素进行笛卡尔积操作

    3)多对多,

        groupBy,将元素通过函数生成相应的Key,然后转化为Key-value格式

    4)输出分区为出入分区子集,

        filter,对RDD进行过滤操作,结果分区不调整

        distinct,对RDD进行去重操作,

        subtract,RDD间进行减操作,去除相同数据元素

        sample/takeSample 对RDD进行采样操作

    5)cache,

        cache,将RDD数据原样存入内存

        persist,对RDD数据进行缓存操作

2. Key-Value算子

    Key-Value算子大致可分为一对一,聚集,连接三类操作

    1)一对一,

        mapValues,针对数值对中的Value进行上面提到的map操作

    2)聚集操作

        combineByKey、reduceByKey、partitionBy、cogroup

    3)连接

        join、leftOutJoin、rightOutJoin

3. Actions算子

    该算子通过SparkContext执行提交作业操作,出发RDD DAG的执行

    1)foreach, 对RDD中每个元素进行操作,但是不返回RDD或者Array,只返回Unit

    2)存入HDFS,saveAsTextFile,saveAsObjectFile

    3)scala数据格式,collect,collectAsMap,reduceByKeyLocally, lookup, count, top, reduce, fold, aggregate
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: