RDD 的算子总结

RDD 常用的算子

RDD 中的算子从功能上分为两大类

  • Transformation(转换) 它会在一个已经存在的 RDD 上创建一个新的 RDD, 将旧的 RDD 的数据转换为另外一种形式后放入新的 RDD

  • Action(动作) 执行各个分区的计算任务, 将的到的结果返回到 Driver 中

Transformation(转换)

  1. map
    作用
    把 RDD 中的数据 一对一 的转为另一种形式
    签名
    def map[U: ClassTag](f: T ⇒ U): RDD[U]
    参数
    f → Map 算子是 原RDD → 新RDD 的过程, 传入函数的参数是原 RDD 数据, 返回值是经过函数转换的新 RDD 的数据
    注意点
    Map 是一对一, 如果函数是 String → Array[String] 则新的 RDD 中每条数据就是一个数组

  2. flatMap
    作用
    FlatMap 算子和 Map 算子类似, 但是 FlatMap 是一对多
    调用
    def flatMap[U: ClassTag](f: T ⇒ List[U]): RDD[U]
    参数
    f → 参数是原 RDD 数据, 返回值是经过函数转换的新 RDD 的数据, 需要注意的是返回值是一个集合, 集合中的数据会被展平后再放入新的 RDD
    注意点
    flatMap 其实是两个操作, 是 map + flatten, 也就是先转换, 后把转换而来的 List 展开
    Spark 中并没有直接展平 RDD 中数组的算子, 可以使用 flatMap 做这件事

  3. filter
    作用
    Filter 算子的主要作用是过滤掉不需要的内容

  4. mapPartitions(List[T] ⇒ List[U])
    RDD[T] ⇒ RDD[U] 和 map 类似, 但是针对整个分区的数据转换

  5. mapPartitionsWithIndex
    和 mapPartitions 类似, 只是在函数中增加了分区的 Index

  6. mapValues
    MapValues 只能作用于 Key-Value 型数据, 和 Map 类似, 也是使用函数按照转换数据, 不同点是 MapValues 只转换 Key-Value 中的 Value

  7. sample(withReplacement, fraction, seed)
    作用

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值