Compartilhar via


coalesce (DataFrame)

Retorna 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 de destino de partições.

Devoluções

DataFrame

Observações

Semelhante à associação definida em um RDD, essa operação resulta em uma dependência estreita, por exemplo, se você passar de 1000 partições para 100 partições, não haverá um embaralhamento, em vez disso, cada uma das 100 novas partições reivindicará 10 das partições atuais. Se um número maior de partições for solicitado, ele permanecerá no número atual de partições.

No entanto, se você estiver fazendo uma união drástica, por exemplo, para numPartitions = 1, isso poderá resultar em sua computação ocorrendo em menos nós do que você gosta (por exemplo, um nó no caso de numPartitions = 1). Para evitar isso, você pode chamar repartition(). Isso adicionará uma etapa de embaralhamento, mas significa que as partições upstream atuais serão executadas em paralelo (de acordo com qualquer que seja o particionamento 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|
# +---------+