repartitionByRange

Mengembalikan DataFrame baru yang dipartisi oleh ekspresi partisi yang diberikan. DataFrame yang dihasilkan dipartisi rentang.

Sintaksis

repartitionByRange(numPartitions: Union[int, "ColumnOrName"], *cols: "ColumnOrName")

Parameter-parameternya

Parameter Tipe Deskripsi
numPartitions int dapat berupa int untuk menentukan jumlah target partisi atau Kolom. Jika berupa Kolom, kolom tersebut akan digunakan sebagai kolom pemartisian pertama. Jika tidak ditentukan, jumlah default partisi digunakan.
cols str atau Kolom kolom partisi.

Pengembalian Barang

DataFrame: DataFrame yang Dipartisi Ulang.

Catatan

Setidaknya satu ekspresi partisi demi ekspresi harus ditentukan. Ketika tidak ada urutan pengurutan eksplisit yang ditentukan, "null naik terlebih dahulu" diasumsikan.

Karena alasan performa, metode ini menggunakan pengambilan sampel untuk memperkirakan rentang. Oleh karena itu, output mungkin tidak konsisten, karena pengambilan sampel dapat mengembalikan nilai yang berbeda. Ukuran sampel dapat dikontrol oleh konfigurasi spark.sql.execution.rangeExchange.sampleSizePerPartition.

Examples

from pyspark.sql import functions as sf
spark.createDataFrame(
    [(14, "Tom"), (23, "Alice"), (16, "Bob")], ["age", "name"]
).repartitionByRange(2, "age").select(
    "age", "name", sf.spark_partition_id()
).show()
# +---+-----+--------------------+
# |age| name|SPARK_PARTITION_ID()|
# +---+-----+--------------------+
# | 14|  Tom|                   0|
# | 16|  Bob|                   0|
# | 23|Alice|                   1|
# +---+-----+--------------------+