Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Restituisce un nuovo dataframe partizionato dalle espressioni di partizionamento indicate. Il dataframe risultante è partizionato.
Sintassi
repartitionByRange(numPartitions: Union[int, "ColumnOrName"], *cols: "ColumnOrName")
Parametri
| Parametro | Tipo | Descrizione |
|---|---|---|
numPartitions |
int | può essere un valore int per specificare il numero di partizioni di destinazione o una colonna. Se si tratta di una colonna, verrà usata come prima colonna di partizionamento. Se non specificato, viene utilizzato il numero predefinito di partizioni. |
cols |
str o Column | partizionamento delle colonne. |
Restituzioni
DataFrame: dataframe ripartizionato.
Note
È necessario specificare almeno un'espressione partition-by. Quando non viene specificato alcun ordine di ordinamento esplicito, si presuppone che venga utilizzato "valori Null crescente per primi".
Per motivi di prestazioni questo metodo usa il campionamento per stimare gli intervalli. Di conseguenza, l'output potrebbe non essere coerente, poiché il campionamento può restituire valori diversi. Le dimensioni del campione possono essere controllate dalla configurazione 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|
# +---+-----+--------------------+