Spark算子:RDD基本转换操作–coalesce、repartition
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相关推荐
- 详解 Spark RDD 的转换操作与行动操作
前言 本期继续讲解 Spark 核心 RDD 编程部分,内容比较干货也比较长,建议大家先收藏. 学习目标 RDD 的创建 RDD 的转换操作 RDD 的行动操作 惰性求值 1. RDD 的创建 Spa ...
- mappartitions java_Spark算子:RDD基本转换操作(5)–mapPartitions、mapPartitionsWithIndex
关键字:Spark算子.Spark RDD基本转换.mapPartitions.mapPartitionsWithIndex mapPartitions def mapPartitions[U](f: ...
- spark之RDD的转换算子与行为算子的具体使用
文章目录 1.Transform算子 1.1 map 1.2 flatmap 1.3 groupBy和groupBykey 1.4 filter 1.5 Mappartitions 1.6 mapVa ...
- RDD基本转换操作:zipWithIndex、zipWithUniqueId
zipWithIndex def zipWithIndex(): RDD[(T, Long)] 该函数将RDD中的元素和这个元素在RDD中的ID(索引号)组合成键/值对. scala> var ...
- 五-中, Spark 算子 吐血总结(转化+行动算子共三十七个)
文章目录 五-中, Spark 算子吐血总结 5.1.4.3 RDD 转换算子(Transformation) 1. Value类型 1.1 `map` 1.2 `mapPartitions` 1.3 ...
- spark算子_Spark常用算子
Spark的算子分类: 从大方向说,Spark算子大致可以分为以下两类: (1)Transformation变换/转换算子:这种变换并不触发提交作业,这种算子是延迟执行的,也就是说从一个RDD转换生成 ...
- Spark算子总结版
Spark的算子的分类 从大方向来说,Spark 算子大致可以分为以下两类: 1)Transformation 变换/转换算子:这种变换并不触发提交作业,完成作业中间过程处理. Transformat ...
- spark学习-Spark算子Transformations和Action使用大全(Transformations章(一))
spark学习-22-Spark算子Transformations和Action使用大全(Transformations章(一)) http://blog.csdn.net/qq_21383435/a ...
- spark算子的分类
spark内置了非常多有用的算子(方法),通过对这些算子的组合就可以完成业务需要的功能,spark的编程归根结底就是对spark算子的使用,因此非常有必要对这些内置算子进行详细的归纳. spark算子 ...
最新文章
- 【深度学习】U型的Transfomer网络(Swin-Unet)和Swin-Transformer分类
- java编写之jpg图片与base64编码之间的转换
- excel如何匹配同名数据_Excel如何查找名字重复的数据
- python求阶乘之和_python计算阶乘前n项和
- 《Code:The Hidden Language Of Computer Hardware and Software》 ——笔记
- 软件工程革命 三部曲 —— 前传
- Oracle 备份shell,oracle数据库shell备份脚本
- 帮公司人事MM做了个工资条拆分工具
- python——re模块
- QT5编程入门教程(非常详细)
- java UCI,UCI数据集
- 怎样用计算机做周计划表,电脑如何制作学生学习计划表
- ​LeetCode刷题实战510:二叉搜索树中的中序后继 II
- Ubuntu 14.04+cuda7.5+torch+tensorflow+remastersys
- Android Service详解
- Django项目中使用第三方登录——支付宝登录
- 安保巡逻机器人如何在公共场所提供安全应用?
- 第七周 位运算、布隆过滤、LUR和排序
- 论文阅读:FACIAL: Synthesizing Dynamic Talking Face with Implicit Attribute Learning
- Android中PIN和PUK码解锁研究