Spark算子学习之二、map、mapPartitions、mapPartitionsWithIndex、flatmap

1. map

1)函数签名

def map[U: ClassTag](f: T => U): RDD[U]

2)功能描述

        函数f可以接收一个参数。当某个RDD执行map方法时,会遍历该RDD中的每一个数据项,并依次应用f函数,从而产生一个新的RDD。即,这个新RDD中的每一个元素都是原来RDD中每一个元素依次应用f函数而得到的。

3)简单案例

sc.makeRDD(1 to 4,2).map(_*2).foreach(println)

 2.mapPartitions

1)函数签名

def mapPartitions[U: ClassTag](
    f: Iterator[T] => Iterator[U],
    preservesPartitioning: Boolean = false): RDD[U]

2)功能描述

       函数f接收的是每个分区的数据归集到一起的集合列表,返回结果仍然是一个集合列表。

        对每个分区中的数据执行map操作,这里的map是指对数据进行处理,不限于map,可以进行filter.take等对列表的各种操作。

       其实分两步,第一步spark会将每个分区的数据归集到一个集合列表中,第二步,对每个集合列表进行操作,这就存在一个问题,如果数据量比较大,很可能发生OOM异常,所以生产环境一定要结合实际情况使用。

3)简单案

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值