当前位置: 首页 > 知识库问答 >
问题:

Spark-Repartition()vs coalesce()

慕俊语
2023-03-14

我得到的一个区别是,使用repartition()可以增加/减少分区的数量,而使用coalesce()只能减少分区的数量。

如果分区分布在多台机器上,并且运行coalesce(),它如何避免数据移动?

共有1个答案

杜正奇
2023-03-14

它避免了全面洗牌。如果已知数量在减少,那么执行器就可以安全地将数据保留在最小数量的分区上,只需将数据从额外的节点移到我们保留的节点上。

所以,它应该是这样的:

Node 1 = 1,2,3
Node 2 = 4,5,6
Node 3 = 7,8,9
Node 4 = 10,11,12

然后coalesce下至2个分区:

Node 1 = 1,2,3 + (10,11,12)
Node 3 = 7,8,9 + (4,5,6)
 类似资料:
  • 主要内容:1.RDD特点:,2.RDD的 5大属性,3.RDD的执行原理,4.Spark的核心组件1.RDD特点: 可变: 存储的弹性 容错的弹性 计算的弹性 分片的弹性 RDD 代码中是一个抽象类, 代表弹性的, 不可变, 可分区, 里面的元素可并行计算的集合, 为弹性分布式数据集。 RDD 不保存数据, 但是有血缘关系。 不可变的是逻辑, 如果想加入新的逻辑, 必须封装。 2.RDD的 5大属性 分区列表 分区计算函数 多个RDD有依赖关系 分区器: 一个分区的规则, 和Kafka 类似

  • 主要内容:1.From Memory,2.From File,3.From File1.From Memory 这里的makeRDD和parallelize没有区别, make底层用的就是parallelize函数 2.From File 3.From File 第二个方法返回了完整路径

  • 为什么 Spark 提供统一处理数据的方式(类似 SQL 基于 RDBMS) 降低应用开发和维护的成本 专注于怎么样使用工具,而不需要理解工具底层的原理 其他

  • 主要内容:1.Spark特点,2.Spark相对于Hadoop的优势,3.Spark生态系统,4.Spark基本概念1.Spark特点 Spark具有如下几个主要特点: 运行速度快:Spark使用先进的DAG(Directed Acyclic Graph,有向无环图)执行引擎,以支持循环数据流与内存计算,基于内存的执行速度可比Hadoop MapReduce快上百倍,基于磁盘的执行速度也能快十倍; 容易使用:Spark支持使用Scala、Java、Python和R语言进行编程,简洁的API设计有

  • 我试图在Kubernetes上运行Spark作为调度程序。 当使用从kubernetes集群外部运行时,它可以正常工作。 但是,每当我们尝试从pod中直接运行spark-shell或spark-submit时,它都不会起作用(即使使用从spark文档中执行rbac也不会起作用。我们有授权执行异常: io.fabric8.kubernetes.client.kubernetesclientExcep