Condividi tramite


repartitionById

Restituisce un nuovo dataframe partizionato dalle espressioni di partizionamento indicate. Il dataframe risultante viene partizionato in base all'identificatore di colonna.

Sintassi

repartitionById(numPartitions: int, *cols: "ColumnOrName")

Parametri

Parametro Tipo Descrizione
numPartitions int numero di partizioni di destinazione.
cols str o Column partizionamento delle colonne.

Restituzioni

DataFrame: dataframe ripartizionato.

Note

È necessario specificare almeno un'espressione partition-by. Questo comportamento è simile al ripartizionamento nella distribuzione, ma mantiene l'ordinamento delle righe all'interno di ogni partizione.

Si tratta di un'API sperimentale.

Examples

from pyspark.sql import functions as sf
spark.createDataFrame(
    [(14, "Tom"), (23, "Alice"), (16, "Bob"), (18, "Alice"), (21, "Alice")],
    ["age", "name"]
).repartitionById(2, "name").select(
    "age", "name", sf.spark_partition_id()
).show()
# +---+-----+--------------------+
# |age| name|SPARK_PARTITION_ID()|
# +---+-----+--------------------+
# | 14|  Tom|                   0|
# | 23|Alice|                   1|
# | 18|Alice|                   1|
# | 21|Alice|                   1|
# | 16|  Bob|                   0|
# +---+-----+--------------------+