2019独角兽企业重金招聘Python工程师标准>>>

coalesce

def coalesce(numPartitions: Int, shuffle: Boolean = false)(implicit ord: Ordering[T] = null): RDD[T]

该函数用于将RDD进行重分区,使用HashPartitioner。

第一个参数为重分区的数目,第二个为是否进行shuffle,默认为false;

以下面的例子来看:

 
  1. scala> var data = sc.textFile("/tmp/lxw1234/1.txt")
  2. data: org.apache.spark.rdd.RDD[String] = MapPartitionsRDD[53] at textFile at :21
  3. scala> data.collect
  4. res37: Array[String] = Array(hello world, hello spark, hello hive, hi spark)
  5. scala> data.partitions.size
  6. res38: Int = 2 //RDD data默认有两个分区
  7. scala> var rdd1 = data.coalesce(1)
  8. rdd1: org.apache.spark.rdd.RDD[String] = CoalescedRDD[2] at coalesce at :23
  9. scala> rdd1.partitions.size
  10. res1: Int = 1 //rdd1的分区数为1
  11. scala> var rdd1 = data.coalesce(4)
  12. rdd1: org.apache.spark.rdd.RDD[String] = CoalescedRDD[3] at coalesce at :23
  13. scala> rdd1.partitions.size
  14. res2: Int = 2 //如果重分区的数目大于原来的分区数,那么必须指定shuffle参数为true,//否则,分区数不便
  15. scala> var rdd1 = data.coalesce(4,true)
  16. rdd1: org.apache.spark.rdd.RDD[String] = MapPartitionsRDD[7] at coalesce at :23
  17. scala> rdd1.partitions.size
  18. res3: Int = 4

repartition

def repartition(numPartitions: Int)(implicit ord: Ordering[T] = null): RDD[T]

该函数其实就是coalesce函数第二个参数为true的实现

 
  1. scala> var rdd2 = data.repartition(1)
  2. rdd2: org.apache.spark.rdd.RDD[String] = MapPartitionsRDD[11] at repartition at :23
  3. scala> rdd2.partitions.size
  4. res4: Int = 1
  5. scala> var rdd2 = data.repartition(4)
  6. rdd2: org.apache.spark.rdd.RDD[String] = MapPartitionsRDD[15] at repartition at :23
  7. scala> rdd2.partitions.size
  8. res5: Int = 4

如果觉得本博客对您有帮助,请 赞助作者 。

转载于:https://my.oschina.net/chensanti234/blog/808544

Spark算子:RDD基本转换操作(2)–coalesce、repartition相关推荐

  1. 详解 Spark RDD 的转换操作与行动操作

    前言 本期继续讲解 Spark 核心 RDD 编程部分,内容比较干货也比较长,建议大家先收藏. 学习目标 RDD 的创建 RDD 的转换操作 RDD 的行动操作 惰性求值 1. RDD 的创建 Spa ...

  2. Spark算子:RDD基本转换操作–coalesce、repartition

    1. coalesce def coalesce(numPartitions: Int, shuffle: Boolean = false)(implicit ord: Ordering[T] = n ...

  3. mappartitions java_Spark算子:RDD基本转换操作(5)–mapPartitions、mapPartitionsWithIndex

    关键字:Spark算子.Spark RDD基本转换.mapPartitions.mapPartitionsWithIndex mapPartitions def mapPartitions[U](f: ...

  4. spark之RDD的转换算子与行为算子的具体使用

    文章目录 1.Transform算子 1.1 map 1.2 flatmap 1.3 groupBy和groupBykey 1.4 filter 1.5 Mappartitions 1.6 mapVa ...

  5. RDD基本转换操作:zipWithIndex、zipWithUniqueId

    zipWithIndex def zipWithIndex(): RDD[(T, Long)] 该函数将RDD中的元素和这个元素在RDD中的ID(索引号)组合成键/值对. scala> var  ...

  6. 五-中, Spark 算子 吐血总结(转化+行动算子共三十七个)

    文章目录 五-中, Spark 算子吐血总结 5.1.4.3 RDD 转换算子(Transformation) 1. Value类型 1.1 `map` 1.2 `mapPartitions` 1.3 ...

  7. spark算子_Spark常用算子

    Spark的算子分类: 从大方向说,Spark算子大致可以分为以下两类: (1)Transformation变换/转换算子:这种变换并不触发提交作业,这种算子是延迟执行的,也就是说从一个RDD转换生成 ...

  8. Spark算子总结版

    Spark的算子的分类 从大方向来说,Spark 算子大致可以分为以下两类: 1)Transformation 变换/转换算子:这种变换并不触发提交作业,完成作业中间过程处理. Transformat ...

  9. spark学习-Spark算子Transformations和Action使用大全(Transformations章(一))

    spark学习-22-Spark算子Transformations和Action使用大全(Transformations章(一)) http://blog.csdn.net/qq_21383435/a ...

  10. spark算子的分类

    spark内置了非常多有用的算子(方法),通过对这些算子的组合就可以完成业务需要的功能,spark的编程归根结底就是对spark算子的使用,因此非常有必要对这些内置算子进行详细的归纳. spark算子 ...

最新文章

  1. hdu 1688 Sightseeing
  2. SQL2005以上版本派生表更新
  3. 发现华为才是真·手机公司,小米确实不靠卖手机赚钱...
  4. DayDayUp之Job:牛客网—算法工程师—剑指offer之66道在线编程(解决思路及其代码)——41~66
  5. CF140C-New Year Snowmen【优先队列】
  6. 学习Spring-Cloud –编写微服务
  7. restTemplate请求,报 : No instances avaliable for ip地址
  8. 用 Python 实现手机自动答题,下一个百万获奖人可能就是你!
  9. 【344天】我爱刷题系列103(2018.01.15)
  10. 浏览器开启WebGL
  11. 模拟电话簿提取名字显示
  12. 七七计算机论文,七七计算机外文文献 七七计算机参考文献怎么写
  13. 项目配置管理CM(Configuration Management)
  14. webrtc与stunserver、turnserver建立连接花费时间十秒左右
  15. 如何在windows上下载安装zeplin
  16. skyline三维地图与arcgis二维地图联动
  17. HTML5相册,网页,模板,微信,制作,
  18. Windows Server 2019的安装模式
  19. 如何使用N1盒子实现自动撸豆
  20. PRTG - Paessler Router Traffic Grapher 6.0.5.516/517 软件试用

热门文章

  1. RPM、SRPM和YUM,linux包rpm包管理工具
  2. c语言 实验6 数组实验报告,实验报告(实验六数组).doc
  3. 物理内存是如何组织管理的
  4. 漫画:什么是B+树?
  5. netlink 0010 -- Generic Netlink 实现通信
  6. STM32相关问题解决方法
  7. PJSIP视频用户开发
  8. SylixOS 启动时mmu 初始化
  9. linux设备实现otg移动盘,Linux下通过OTG把板卡上的一个磁盘或文件映射成移动磁盘...
  10. 愤怒的小鸟python代码_Python 愤怒的小鸟代码实现:物理引擎pymunk使用