repartitionById
Renvoie un nouveau DataFrame partitionné par les expressions de partitionnement données. Le DataFrame résultant est partitionné par l'identifiant de colonne.
Syntaxe
repartitionById(numPartitions: int, *cols: "ColumnOrName")
parameter
parameter | Type | Description |
|---|---|---|
| int | le nombre cible de partitions. |
| str or Column | colonnes de partitionnement. |
Renvoie
DataFrame: DataFrame repartitionné.
Notes
Au moins une expression de partitionnement doit être spécifiée. Ceci est similaire à une répartition dans la distribution, mais préserve l'ordre des lignes au sein de chaque partition.
Il s'agit d'une API expérimentale.
Exemples
Python
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|
# +---+-----+--------------------+