объединение (Кадр данных)

Возвращает новый кадр данных с точными numPartitions секциями.

Синтаксис

coalesce(numPartitions: int)

Параметры

Параметр Тип Описание
numPartitions int укажите целевое число секций.

Возвраты

DataFrame

Примечания

Как и при объединениях, определенных в RDD, эта операция приводит к узкой зависимости, например, если вы переходите от 1000 секций до 100 секций, то вместо каждой из 100 новых секций будет требоваться 10 из текущих секций. Если запрашивается большее количество секций, оно будет оставаться в текущем количестве секций.

Однако если вы выполняете резкое объединение, например числоpartitions = 1, это может привести к тому, что вычисления выполняются на меньшем количестве узлов, чем вам нравится (например, один узел в случае numPartitions = 1). Чтобы избежать этого, можно вызвать повторную часть(). Это добавит шаг перетасовки, но означает, что текущие вышестоящие секции будут выполняться параллельно (независимо от текущего секционирования).

Примеры

from pyspark.sql import functions as sf
spark.range(0, 10, 1, 3).coalesce(1).select(
    sf.spark_partition_id().alias("partition")
).distinct().sort("partition").show()
# +---------+
# |partition|
# +---------+
# |        0|
# +---------+