pyspark.sql.DataFrame.coalesce ¶
-
DataFrame.
coalesce
( numPartitions : int ) → pyspark.sql.dataframe.DataFrame [source] ¶ -
返回一个具有确切 numPartitions 分区的新
DataFrame
。类似于在
RDD
上定义的 coalesce,此操作会产生一个窄依赖,例如,如果你从 1000 个分区变为 100 个分区,将不会发生洗牌,而是每个新的 100 个分区将声明当前分区的 10 个。如果请求的分区数量更大,它将保持在当前的分区数量。然而,如果你正在进行大幅度的合并,例如将numPartitions设置为1,这可能会导致你的计算在比预期更少的节点上进行(例如,在numPartitions = 1的情况下,只有一个节点)。为了避免这种情况,你可以调用repartition()。这将增加一个洗牌步骤,但意味着当前的上游分区将并行执行(根据当前的分区情况)。
新增于版本 1.4.0。
在版本 3.4.0 中更改: 支持 Spark Connect。
- Parameters
-
- numPartitions int
-
指定目标分区数量
- Returns
示例
>>> df = spark.range(10) >>> df.coalesce(1).rdd.getNumPartitions() 1