Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Returnerar en ny DataFrame som partitionerats av de angivna partitioneringsuttrycken. Den resulterande dataramen är partitionerad.
Syntax
repartitionByRange(numPartitions: Union[int, "ColumnOrName"], *cols: "ColumnOrName")
Parameters
| Parameter | Type | Beskrivning |
|---|---|---|
numPartitions |
int | kan vara en int för att ange målantalet partitioner eller en kolumn. Om det är en kolumn används den som den första partitioneringskolumnen. Om det inte anges används standardantalet partitioner. |
cols |
str eller kolumn | partitioneringskolumner. |
Retur
DataFrame: Ompartitionerad DataFrame.
Notes
Minst ett partition-by-uttryck måste anges. När ingen explicit sorteringsordning anges antas "stigande null först".
På grund av prestandaorsaker använder den här metoden sampling för att uppskatta intervallen. Därför kanske utdata inte är konsekventa, eftersom sampling kan returnera olika värden. Exempelstorleken kan styras av konfigurationen spark.sql.execution.rangeExchange.sampleSizePerPartition.
Exempel
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|
# +---+-----+--------------------+