美文网首页Spark & Flink
Spark 算子- Value Transformation

Spark 算子- Value Transformation

作者: Alex90 | 来源:发表于2018-01-06 18:14 被阅读12次

    Spark算子的作用

    Spark的输入、运行转换、输出过程,在运行转换中通过算子对RDD进行转换

    输入:外部数据空间(HDFS、Scala集合)输入Spark,数据进入Spark运行时数据空间,转化为Spark数据块,通过BlockManager管理

    运行:输入形成RDD后,通过算子操作生成新的RDD,通过Action算子,触发Spark提交作业

    输出:程序结束数据输出到运行时数据空间,存储到分布式存储或Scala数据


    算子分类

    Value数据类型的Transformation算子
    Key-Value数据类型的Transformation算子
    Action算子

    Value数据类型的Transformation算子

    输入输出一对一

    map
    将原RDD的每一个数据通过map中用户自定义函数f映射转为一个新的元素

    map

    flatMap
    将原RDD的每一个数据通过函数f转换为新的元素,将生成的RDD的每个集合中的元素合并为一个集合

    flatMap

    mapPartitions
    获取到每个分区的迭代器(Iterator),通过这个分区整体的迭代器对整个分区的元素进行操作

    mapPartitions

    glom
    将每个分区形成一个数组

    glom

    输入输出多对一

    union
    在两个RDD元素数据类型相同时,合并两个RDD的元素,并不去重
    如果要去重使用distinct(),++相当于union()

    union

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

    cartesian

    输入输出多对多

    groupBy
    将元素通过函数生成相应的key,数据转化为key-value,然后将key相同的元素分为一组

    groupBy

    输入是输出子集

    filter
    对元素进行过滤

    filter

    distinct
    元素去重操作

    distinct

    subtract
    集合差操作,RDD1-RDD2

    subtract

    sample
    对RDD集合中的元素进行采样,获取所有元素的子集,可以设定有放回抽样、百分比、随机种子,决定采样方式

    sample

    takeSample
    与sample函数原理相同,但不使用相对比例采样,按设定的采样个数进行采样,返回的不是RDD而是单机的数组,相当于执行了collect()操作

    takeSample

    cache类型

    cache
    将RDD元素从磁盘缓存到内存,相当于persist(MEMORY_ONLY)

    cache

    persist
    对RDD缓存,缓存模式由StorageLevel决定,参考 RDD持久化级别

    相关文章

      网友评论

        本文标题:Spark 算子- Value Transformation

        本文链接:https://www.haomeiwen.com/subject/apoynxtx.html