Spark算子笔记

Spark算子

Transformation:

  • map:返回一个新的RDD,经过一个新的Fun函数转换之后组成

    • RDD=sc.parallelize(rdd) rdd2 = rdd.map(fun)
  • mapPartitions:将数据分区为单位发送到计算节点(减少网络传输,可能造成内存不足)

  • mapPartitionsWithIndex:以分区发送处理并能获得当前分区索引号

  • flatmap:数据扁平化映射处理 返回一个序列(list)

  • glom:将数据转换为相同类型的数组进行处理

  • groupBy:根据指定规则分组,分区默认不变,但是数据会打乱重新组合(shuffle)

  • sample:根据指定的规则从数据集中抽取数

    • rdd.sample(是否放回(True or False),重复抽到数据的期望(0-1),随机数种子)
  • distinct:数据集重复去重 经过 map->reduceBykey->map 过程

  • coalesce:根据数据量缩减分区,收缩合并分区(常用多转少同个stage 窄依赖)

  • reparation:内部函数执行coalesce操作,参数shuffle默认为true,多转少,少转多都可以(必定执行shullfe)

  • sortby : rdd.sortby(fun,升序(false),4) 返回与原分区一致,可能发生shuffle过程

  • intersection:求交集,union:求并集,

  • subtract:求差集,zip:键值对合并,

  • partitionBy:按照指定Partitioner重新分区,默认HashPartitioner

  • reduceByKey:将相同的key对Value进行聚合.

    • 可传入函数rdd.reduceBykey(fun)
  • groupByKey:根据Key对Value进行分组

    • 从shuffle角度来说
      • reduceBykey和groupBykey都存在shuffle过程,
      • reducebykey可以在分区前对相同的key进行预聚合,减少落盘数量
      • groupbykey只是进行分组.
    • 从功能角度来说
      • groupbykey 只能进行分组不能进行聚合
      • reducebykey 则可以进行分组聚合
  • aggregateByKey:根据不同的规则进行分区内计算和分区间计算 分区内是一个函数,分区间是一个函数

    • rdd.(func(分区内),func(分区间))
  • foldbykey:当分区内计算规则和分区间计算规则相同时,aggregatebykey就简化为foldbykey(分区内和分区间逻辑一致)

  • combinebykey:rdd.(func(将数据进行结构转换),func(分区内的计算规则),func(分区间计算规则))

  • filter:返回一个新的RDD,返回经过fun函数计算后返回为True的输入元素

Action算子:

  • reduce:先聚合分区内数据,再聚合分区间数据

  • collect:以数组的形式返回数据集中所有的元素

  • count:返回元素的个数

  • first:返回rdd的第一个元素

  • take:返回Rdd的前N个元素的数组(类似于head -n)

  • takeOrdered:返回排序后的前n个数据的数组

  • aggregate:初始值分区内聚合,再和分区间进行聚合(rdd.aggregate(func(分区内),func(分区间)))

  • fold:aggregate简化版 分区内和分区间操作相同时可用

  • countbykey:统计每种key 的个数

  • save:saveAsTextFile,saveAsObjectFile,saveAsSequenceFile

  • foreach:分布式遍历rdd中的每一个元素,调用指定函数

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值