coalesce (DataFrame)

Devolve um novo DataFrame que tem exatamente numPartitions partições.

Sintaxe

coalesce(numPartitions: int)

Parâmetros

Parâmetro Tipo Descrição
numPartitions int Especifique o número alvo de partições.

Devoluções

DataFrame

Notes

Semelhante à coalesce definida num RDD, esta operação resulta numa dependência restrita, por exemplo, se passar de 1000 partições para 100 partições, não haverá embaralhar; em vez disso, cada uma das 100 novas partições reivindicará 10 das partições atuais. Se for solicitado um número maior de partições, este manter-se-á no número atual de partições.

No entanto, se estiveres a fazer uma coalessão drástica, por exemplo, para numPartições = 1, isso pode resultar no cálculo em menos nós do que gostarias (por exemplo, um nó no caso de numPartições = 1). Para evitar isto, pode chamar repartition(). Isto adicionará um passo de embaralhamento, mas significa que as partições atuais a montante serão executadas em paralelo (conforme a partição atual).

Exemplos

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|
# +---------+