博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
spark RDD功能与分类
阅读量:5818 次
发布时间:2019-06-18

本文共 951 字,大约阅读时间需要 3 分钟。

算子的定义:RDD中定义的函数,可以对RDD中的数据进行转换和操作。下面根据算子类型的分类进行总结:

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

转载于:https://www.cnblogs.com/vbiao/p/7123408.html

你可能感兴趣的文章
Javascript 动态增减元素
查看>>
用C语言扩展Python的功能
查看>>
POJ---1703 Find them, Catch them [并查集]
查看>>
ios6:UIImagePickerController & Rotation
查看>>
js通过八个点 拖动改变div大小
查看>>
PHP截取字符串
查看>>
Ubuntu12下挂载硬盘(9TB)(文章索引)
查看>>
java中FileInputStream,FileReader等的区别(转)
查看>>
CentOS下MongoDB的升级
查看>>
tomcat多版本war应用部署(实例讲解)
查看>>
JS对img进行操作
查看>>
哈夫曼编码与译码
查看>>
分块查找算法
查看>>
C++const用法总结 (转)
查看>>
一段旅程的结束和另一端旅程的开始
查看>>
iPhone 屏幕上的 Home 键在哪里?(已解决)
查看>>
background-position 用法详细介绍
查看>>
由浅入深表达式树(完结篇)重磅打造 Linq To 博客园
查看>>
如何得到数据库中所有表名 表字段及字段中文描述
查看>>
AJAX 实时读取输入文本(php)
查看>>