Freigeben über


repartitionById

Gibt einen neuen DataFrame zurück, der von den angegebenen Partitionierungsausdrücken partitioniert wird. Der resultierende DataFrame wird durch Spaltenbezeichner partitioniert.

Syntax

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

Parameter

Parameter Typ Beschreibung
numPartitions int die Zielanzahl der Partitionen.
cols str oder Column Partitionieren von Spalten.

Rückkehr

DataFrame: DataFrame neu partitioniert.

Hinweise

Es muss mindestens eine Partition nach Ausdruck angegeben werden. Dies ähnelt der Neupartitionierung in der Verteilung, behält jedoch die Reihenfolge der Zeilen innerhalb jeder Partition bei.

Dies ist eine experimentelle API.

Beispiele

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|
# +---+-----+--------------------+