1. coalesce

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

该函数用于将RDD进行重分区,使用HashPartitioner。第一个参数为重分区的数目,第二个为是否进行shuffle,默认为false.

代码测试如下:

scala> var data = sc.textFile("example.txt")
data: org.apache.spark.rdd.RDD[String] = MapPartitionsRDD[53] at textFile at :21scala> data.collect
res1: Array[String] = Array(hello world, hello spark, hello hive, hi spark)scala> data.partitions.size
res2: Int = 2 //RDD data默认有两个分区scala> var rdd1 = data.coalesce(1)
rdd1: org.apache.spark.rdd.RDD[String] = CoalescedRDD[2] at coalesce at :23scala> rdd1.partitions.size
res3: Int = 1 //rdd1的分区数为1scala> var rdd1 = data.coalesce(4)
rdd1: org.apache.spark.rdd.RDD[String] = CoalescedRDD[3] at coalesce at :23scala> rdd1.partitions.size
res4: Int = 2 //如果重分区的数目大于原来的分区数,那么必须指定shuffle参数为true,否则,分区数不变scala> var rdd1 = data.coalesce(4,true)
rdd1: org.apache.spark.rdd.RDD[String] = MapPartitionsRDD[7] at coalesce at :23scala> rdd1.partitions.size
res5: Int = 4

2. repartition

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

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

代码测试如下:

scala> var rdd2 = data.repartition(1)
rdd2: org.apache.spark.rdd.RDD[String] = MapPartitionsRDD[11] at repartition at :23scala> rdd2.partitions.size
res6: Int = 1scala> var rdd2 = data.repartition(4)
rdd2: org.apache.spark.rdd.RDD[String] = MapPartitionsRDD[15] at repartition at :23scala> rdd2.partitions.size
res7: Int = 4

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

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

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

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

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

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

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

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

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

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

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

  6. spark算子_Spark常用算子

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

  7. Spark算子总结版

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

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

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

  9. spark算子的分类

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

最新文章

  1. 【深度学习】U型的Transfomer网络(Swin-Unet)和Swin-Transformer分类
  2. java编写之jpg图片与base64编码之间的转换
  3. excel如何匹配同名数据_Excel如何查找名字重复的数据
  4. python求阶乘之和_python计算阶乘前n项和
  5. 《Code:The Hidden Language Of Computer Hardware and Software》 ——笔记
  6. 软件工程革命 三部曲 —— 前传
  7. Oracle 备份shell,oracle数据库shell备份脚本
  8. 帮公司人事MM做了个工资条拆分工具
  9. python——re模块
  10. QT5编程入门教程(非常详细)
  11. java UCI,UCI数据集
  12. 怎样用计算机做周计划表,电脑如何制作学生学习计划表
  13. ​LeetCode刷题实战510:二叉搜索树中的中序后继 II
  14. Ubuntu 14.04+cuda7.5+torch+tensorflow+remastersys
  15. Android Service详解
  16. Django项目中使用第三方登录——支付宝登录
  17. 安保巡逻机器人如何在公共场所提供安全应用?
  18. 第七周 位运算、布隆过滤、LUR和排序
  19. 论文阅读:FACIAL: Synthesizing Dynamic Talking Face with Implicit Attribute Learning
  20. Android中PIN和PUK码解锁研究

热门文章

  1. [raspberry pi3] 串口线使用
  2. C++ 流操作符重载函数
  3. 计算机视觉之一:特征检测
  4. VS2008工具,两种加入库的方法。 设置程序运行时目录
  5. hdu 5410(背包问题变形)
  6. 无缓冲channel的内存泄漏问题
  7. 通过excel模板文件根据数据库数据修改其中的单元格数据
  8. Reference to Different Versions of the Same Assembly
  9. 第五节 面向对象相关特性
  10. discuzx2.5添加自定义积分日志