Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Vrátí nový datový rámec dělený danými výrazy dělení. Výsledný datový rámec je rozdělený na oddíly.
Syntaxe
repartitionByRange(numPartitions: Union[int, "ColumnOrName"], *cols: "ColumnOrName")
Parametry
| Parameter | Typ | Description |
|---|---|---|
numPartitions |
int (integer) | může být int k určení cílového počtu oddílů nebo sloupce. Pokud se jedná o sloupec, použije se jako první sloupec dělení. Pokud není zadaný, použije se výchozí počet oddílů. |
cols |
str nebo Column | dělení sloupců. |
Návraty
DataFrame: Repartitioned DataFrame.
Poznámky
Musí být zadán alespoň jeden výraz dělení podle oddílu. Pokud není zadáno žádné explicitní pořadí řazení, předpokládá se " vzestupné hodnoty null jako první".
Z důvodu výkonu tato metoda používá vzorkování k odhadu rozsahů. Proto nemusí být výstup konzistentní, protože vzorkování může vracet různé hodnoty. Velikost vzorku může být řízena konfigurací spark.sql.execution.rangeExchange.sampleSizePerPartition.
Příklady
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|
# +---+-----+--------------------+