2.3.1.2 Value类型-mapPartitions()以分区为单位执行Map

2.3.1.2 Value类型-mapPartitions()以分区为单位执行Map

----------------转载放原连接,违权必究--------------------------

1、格式:

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

2、功能:
1、原来RDD中的元素按照一个分区为一个Iterator,遍历分区

2、每个分区数据(Iterator)依次按批次进入mapPartitions算子中的f

3、经过f函数的作用出来仍然是Iterator,形成一个新的RDD

4、mapPartitions算子的第二个参数表示是否保留上流RDD的分区,默认是false

3、例子:将一个RDD的数据分区,并使用mapPartitions算子将数据乘以2,形成新的RDD

1.   package com.zhaoxuan.scalatest  
2.  
3.import org.apache.spark.rdd.RDD  
4.import org.apache.spark.{SparkConf, SparkContext}  
5.  
6./**  
7.  * 3、例子:将一个RDD的数据分区,并使用mapPartitions算子将数据乘以2,形成新的RDD  
8.  * */  
9.object MapPartitionsTest {  
10.  def main(args: Array[String]): Unit = {  
11.    val conf :SparkConf = new SparkConf().setAppName("mapPartitions算子测试").setMaster("local[*]")  
12.    val sc :SparkContext = new SparkContext(conf)  
13.    val numRdd : RDD[Int] = sc.makeRDD(1 to 6,2)  
14.    val twoNum1 : RDD[Int] = numRdd.mapPartitions((n) => n.map((m) => (m * 2)))  
15.    //简写  
16.    val twoNum2 :RDD[Int] = numRdd.mapPartitions(_.map(_ * 2))  
17.    twoNum2.collect().foreach(println)  
18.  }  
19.}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值