repartitionByRange

Verilen bölümleme ifadeleri tarafından bölümlenmiş yeni bir DataFrame döndürür. Sonuçta elde edilen DataFrame aralık bölümlenmiştir.

Sözdizimi

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

Parametreler

Parametre Türü Açıklama
numPartitions Int , hedef bölüm sayısını veya Sütun'un belirtileceği bir int olabilir. Sütun ise, ilk bölümleme sütunu olarak kullanılır. Belirtilmezse, varsayılan bölüm sayısı kullanılır.
cols str veya Sütun bölümleme sütunları.

İadeler

DataFrame: Yeniden bölümlenmiş DataFrame.

Notlar

En az bir bölüme göre ifade belirtilmelidir. Açık sıralama düzeni belirtilmediğinde , "önce artan nulllar" varsayılır.

Performans nedenlerinden dolayı bu yöntem, aralıkları tahmin etmek için örnekleme kullanır. Bu nedenle, örnekleme farklı değerler döndürebileceğinden çıkış tutarlı olmayabilir. Örnek boyutu yapılandırması spark.sql.execution.rangeExchange.sampleSizePerPartitiontarafından denetlenebilir.

Örnekler

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