Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gibt einen neuen DataFrame zurück, der von den angegebenen Partitionierungsausdrücken partitioniert wird. Der resultierende DataFrame ist bereichspartitioniert.
Syntax
repartitionByRange(numPartitions: Union[int, "ColumnOrName"], *cols: "ColumnOrName")
Parameter
| Parameter | Typ | Beschreibung |
|---|---|---|
numPartitions |
int | kann ein Int sein, um die Zielanzahl von Partitionen oder eine Spalte anzugeben. Wenn es sich um eine Spalte handelt, wird sie als erste Partitionierungsspalte verwendet. Wenn nicht angegeben, wird die Standardanzahl der Partitionen verwendet. |
cols |
str oder Column | Partitionieren von Spalten. |
Rückkehr
DataFrame: DataFrame neu partitioniert.
Hinweise
Es muss mindestens eine Partition nach Ausdruck angegeben werden. Wenn keine explizite Sortierreihenfolge angegeben wird, wird "aufsteigende Nullen zuerst" angenommen.
Aus Leistungsgründen verwendet diese Methode Sampling, um die Bereiche zu schätzen. Daher ist die Ausgabe möglicherweise nicht konsistent, da das Sampling unterschiedliche Werte zurückgeben kann. Die Beispielgröße kann durch die Konfiguration spark.sql.execution.rangeExchange.sampleSizePerPartitiongesteuert werden.
Beispiele
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|
# +---+-----+--------------------+