Spark函数讲解:coalesce

转载 2016年05月31日 11:49:53

函数原型

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

  返回一个新的RDD,且该RDD的分区个数等于numPartitions个数。如果shuffle设置为true,则会进行shuffle。

实例

01 /**
02  * User: 过往记忆
03  * Date: 15-03-09
04  * Time: 上午06:30
05  * bolg: http://www.iteblog.com
06  * 本文地址:http://www.iteblog.com/archives/1279
07  * 过往记忆博客,专注于hadoop、hive、spark、shark、flume的技术博客,大量的干货
08  * 过往记忆博客微信公共帐号:iteblog_hadoop
09  */
10 scala> var data = sc.parallelize(List(1,2,3,4))
11 data: org.apache.spark.rdd.RDD[Int] =
12     ParallelCollectionRDD[45] at parallelize at <console>:12
13  
14 scala> data.partitions.length
15 res68: Int = 30
16  
17 scala> val result = data.coalesce(2false)
18 result: org.apache.spark.rdd.RDD[Int] = CoalescedRDD[57] at coalesce at <console>:14
19  
20 scala> result.partitions.length
21 res77: Int = 2
22  
23 scala> result.toDebugString
24 res75: String =
25 (2) CoalescedRDD[57] at coalesce at <console>:14 []
26  |  ParallelCollectionRDD[45] at parallelize at <console>:12 []
27  
28 scala> val result1 = data.coalesce(2true)
29 result1: org.apache.spark.rdd.RDD[Int] = MappedRDD[61] at coalesce at <console>:14
30  
31 scala> result1.toDebugString
32 res76: String =
33 (2) MappedRDD[61] at coalesce at <console>:14 []
34  |  CoalescedRDD[60] at coalesce at <console>:14 []
35  |  ShuffledRDD[59] at coalesce at <console>:14 []
36  +-(30) MapPartitionsRDD[58] at coalesce at <console>:14 []
37     |   ParallelCollectionRDD[45] at parallelize at <console>:12 []

  从上面可以看出shuffle为false的时候并不进行shuffle操作;而为true的时候会进行shuffle操作。RDD.partitions.length可以获取相关RDD的分区数。

Spark中repartition和coalesce的用法

小白一名,如果有错的地方希望大家指出。

Spark RDD系列----3. rdd.coalesce方法的作用

当spark程序中,存在过多的小任务的时候,可以通过 RDD.coalesce方法,收缩合并分区,减少分区的个数,减小任务调度成本,避免Shuffle导致,比RDD.repartition效率提高不少...

spark coalesce和repartition的区别

repartition(numPartitions:Int):RDD[T]和coalesce(numPartitions:Int,shuffle:Boolean=false):RDD[T] 他们两个...

Spark 重分区函数:coalesce和repartition区别与实现,可以优化Spark程序性能

源码包路径: org.apache.spark.rdd.RDD coalesce函数: 方法注释: Return a new RDDthat is r...
  • Dax1n
  • Dax1n
  • 2016年12月02日 09:15
  • 3912

MySQL字符串大小写转换函数

MySQL字符串大小写转换需要用到MySQL字符串大小写转换函数,MySQL 字符串大小写转化函数有两对: lower(), uppper() 和 lcase(), ucase(): mysql> ...

计算质数通过分区(Partition)提高Spark的运行性能

在Sortable公司,很多数据处理的工作都是使用Spark完成的。在使用Spark的过程中他们发现了一个能够提高Spark job性能的一个技巧,也就是修改数据的分区数,本文将举个例子并详细地介绍如...

Spark Rdd coalesce()方法和repartition()方法

有时候需要重新设置Rdd的分区数量,比如Rdd的分区中,Rdd分区比较多,但是每个Rdd的数据量比较小,需要设置一个比较合理的分区。或者需要把Rdd的分区数量调大。还有就是通过设置一个Rdd的分区来达...
  • chenjoe
  • chenjoe
  • 2017年06月13日 16:40
  • 173

Spark Transformation —— coalesce

coalesce 联合,合并def coalesce(numPartitions: Int, shuffle: Boolean = false)(implicit ord: Ordering[T] =...

Spark 重分区coalesce和repartition,合并小文件

源码包路径: org.apache.spark.rdd.RDD coalesce函数: 方法注释: Return a new RDDthat is reduce...

spark transform系列__Coalesce

Coalesce/repartition coalesce 这个操作是把当前的RDD中的partition根据一个新的传入的parition的个数,对partition中的结果集进行重新组合成一个...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Spark函数讲解:coalesce
举报原因:
原因补充:

(最多只允许输入30个字)