Pular para o conteúdo principal

coalescer (DataFrame)

Retorna um novo DataFrame que possui exatamente numPartitions partições.

Sintaxe

coalesce(numPartitions: int)

Parâmetros

Parâmetro

Tipo

Descrição

numPartitions

int

Especifique o número desejado de partições.

Devoluções

DataFrame

Notas

Semelhante à operação coalesce definida em um RDD, esta 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 (shuffle), 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, ele permanecerá com o número atual de partições.

No entanto, se você estiver realizando uma coalescência drástica, por exemplo, para numPartitions = 1, isso pode resultar em sua computação sendo realizada em menos nós do que o desejado (por exemplo, um nó no caso de numPartitions = 1). Para evitar isso, você pode chamar repartition(). Isso adicionará um embaralhamento de passos, mas significa que as partições upstream atuais serão executadas em paralelo (de acordo com o particionamento atual).

Exemplos

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