coalesce (DataFrame)

Mengembalikan DataFrame baru yang memiliki partisi yang tepat numPartitions .

Sintaksis

coalesce(numPartitions: int)

Parameter-parameternya

Parameter Tipe Deskripsi
numPartitions int tentukan jumlah target partisi.

Pengembalian Barang

DataFrame

Catatan

Mirip dengan coalesce yang ditentukan pada RDD, operasi ini menghasilkan dependensi sempit, misalnya jika Anda pergi dari 1000 partisi ke 100 partisi, tidak akan ada pengacakan, bukan masing-masing dari 100 partisi baru akan mengklaim 10 partisi saat ini. Jika jumlah partisi yang lebih besar diminta, partisi akan tetap berada di jumlah partisi saat ini.

Namun, jika Anda melakukan coalesce drastis, misalnya ke numPartitions = 1, ini dapat mengakibatkan komputasi Anda terjadi pada lebih sedikit simpul daripada yang Anda suka (misalnya satu node dalam kasus numPartitions = 1). Untuk menghindari hal ini, Anda dapat memanggil repartition(). Ini akan menambahkan langkah acak, tetapi berarti partisi hulu saat ini akan dijalankan secara paralel (per apa pun partisi saat ini).

Examples

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