Aller au contenu principal

sortWithinPartitions

Renvoie un nouveau DataFrame, chaque partition étant triée par la ou les colonnes spécifiées.

Syntaxe

sortWithinPartitions(*cols: Union[int, str, Column, List[Union[int, str, Column]]], **kwargs: Any)

parameter

parameter

Type

Description

cols

int, str, liste ou Column, facultatif

liste de noms de colonne ou d'ordinaux de colonne à trier par.

ascending

bool ou liste, facultatif, default True

booléen ou liste de booléens. Trier par ordre croissant ou décroissant. Spécifiez une liste pour plusieurs ordres de tri. Si une liste est spécifiée, la longueur de la liste doit être égale à la longueur de cols.

parameter

Type

Description

cols

int, str, liste ou Column, facultatif

liste de noms de colonne ou d'ordinaux de colonne à trier par.

ascending

bool ou liste, facultatif, default True

booléen ou liste de booléens. Trier par ordre croissant ou décroissant. Spécifiez une liste pour plusieurs ordres de tri. Si une liste est spécifiée, la longueur de la liste doit être égale à la longueur de cols.

Renvoie

DataFrame: DataFrame trié par partitions.

Notes

Un ordinal de colonne start à partir de 1, ce qui est différent du __getitem__ basé sur 0. Si un ordinal de colonne est négatif, cela signifie un tri décroissant.

Exemples

L’exemple suivant utilise la fonction sortWithinPartitions avec la fonctioncoalesce pour trier les lignes du cadre de données au sein d’une partition.

Python
from pyspark.sql import functions as sf
df = spark.createDataFrame([(2, "Alice"), (5, "Bob")], schema=["age", "name"])
df.sortWithinPartitions("age", ascending=False)
# DataFrame[age: bigint, name: string]

df.coalesce(1).sortWithinPartitions(1).show()
# +---+-----+
# |age| name|
# +---+-----+
# | 2|Alice|
# | 5| Bob|
# +---+-----+

df.coalesce(1).sortWithinPartitions(-1).show()
# +---+-----+
# |age| name|
# +---+-----+
# | 5| Bob|
# | 2|Alice|
# +---+-----+