美文网首页
spark常用算子

spark常用算子

作者: Ary_zz | 来源:发表于2019-02-27 17:25 被阅读0次

    2019-02-27
    官方中文文档

    Transformation

    • map
      将一个RDD中的每个数据项,通过map中的函数映射变为一个新的元素。
      输入分区与输出分区一对一

    • flatMap
      每一个 input item可以被映射成0个或多个output item

    • distinct
      去重

    创建RDD

    • parallelize
      从一个Seq集合创建RDD

    • makeRDD
      从一个Seq集合创建RDD。

    • textFile
      从HDFS文件创建

    RDD转换

    • coalesce
      将RDD重分区,使用HashPartitioner
      第二个参数是否进行shuffle,默认false

    • repartition
      上述算子第二个参数为true

    • mapPartitions
      映射函数的参数为RDD中每一个分区的迭代器
      如果在映射的过程中需要频繁创建额外的对象,使用mapPartitions要比map高效 (例如,将RDD中的所有数据通过JDBC连接写入数据库,如果使用map函数,可能要为每一个元素都创建一个connection,这样开销很大,如果使用mapPartitions,那么只需要针对每一个分区建立一个connection)

    • mapPartitionsWithIndex

    • union
      将2个RDD合并,不去重

    • intersection
      返回2个RDD的交集

    • subtract
      返回在RDD中存在,另一个不存在的元素,不去重

    • randomSplit
      根据权重,将一个RDD切分为多个

    • glom
      将RDD中每个分区的元素集合成Array

    RDD键值转换

    • partitionBy
      根据partitioner函数生成新的shuffleRDD,即重新分区

    • mapValues
      对value进行map操作

    • flatMapValues
      对value进行操作并合并分区

    • combineByKey
      RDD[K,V] -> RDD[K,C]

    • foldByKey
      对RDD[K,V]根据K将V做折叠、合并处理

    • groupByKey
      将RDD[K,V]中每个K对应的V值,合并到一个集合Iterable[V]

    • reduceByKey
      将RDD[K,V]中每个K对应的V值根据映射函数进行运算

    • reduceByKeyLocally
      将RDD[K,V]中每个K对应的V值根据映射函数来运算,运算结果映射到一个Map[K,V]中

    • join
      SQL中的内关联join

    RDD action

    • first
      返回第一个,不排序

    • count

    • reduce
      对RDD中元素进行二元运算,返回结果

    • collect
      将RDD转换成数组

    • take
      等于数组get

    • top
      按排序top, 默认降序

    • takeOrdered
      和top相反的顺序take

    • aggregate
      聚合RDD中元素

    • fold
      使用相同seqOp和combOp的aggregate

    • lookup
      指定K值,返回RDD中该K对应的所有V

    • foreach
      遍历RDD,操作每一个元素

    • foreachPartition
      操作每一个分区

    相关文章

      网友评论

          本文标题:spark常用算子

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