repartitionById

Retourneert een nieuw DataFrame dat is gepartitioneerd door de opgegeven partitioneringsexpressies. Het resulterende DataFrame wordt gepartitioneerd op kolom-id.

Syntaxis

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

Parameterwaarden

Kenmerk Typ Beschrijving
numPartitions int het doelaantal partities.
cols str of Column partitionering van kolommen.

Retouren

DataFrame: Opnieuw gepartitioneerd DataFrame.

Aantekeningen

Er moet ten minste één partitie-by-expressie worden opgegeven. Dit is vergelijkbaar met opnieuw partitioneren in distributie, maar behoudt de volgorde van de rijen binnen elke partitie.

Dit is een experimentele API.

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