coalescer (DataFrame)
Retorna um novo DataFrame que possui exatamente numPartitions partições.
Sintaxe
coalesce(numPartitions: int)
Parâmetros
Parâmetro | Tipo | Descrição |
|---|---|---|
| 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
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|
# +---------+