Aller au contenu principal

array_sort

Fonction de collection : Trie le tableau d'entrée par ordre croissant. Les éléments du tableau d'entrée doivent être ordonnables. Les éléments nuls seront placés à la fin du tableau renvoyé. Prend en charge Spark Connect.

Pour la fonction Databricks SQL correspondante, consultez la fonctionarray_sort.

Syntaxe

Python
from pyspark.sql import functions as dbf

dbf.array_sort(col=<col>, comparator=<comparator>)

parameter

parameter

Type

Description

col

pyspark.sql.Column OU str

Nom de la colonne ou de l'expression.

comparator

callable, facultatif

Fonction binaire qui renvoie un entier négatif, 0, ou un entier positif si le premier élément est inférieur, égal ou supérieur au second élément. Si la fonction de comparaison renvoie null, la fonction échouera et générera une erreur.

parameter

Type

Description

col

pyspark.sql.Column OU str

Nom de la colonne ou de l'expression.

comparator

callable, facultatif

Fonction binaire qui renvoie un entier négatif, 0, ou un entier positif si le premier élément est inférieur, égal ou supérieur au second élément. Si la fonction de comparaison renvoie null, la fonction échouera et générera une erreur.

Renvoie

pyspark.sql.Column: tableau trié.

Exemples

Exemple 1 : Tri d'un tableau par ordre croissant par default

Python
from pyspark.sql import functions as dbf
df = spark.createDataFrame([([2, 1, None, 3],),([1],),([],)], ['data'])
df.select(dbf.array_sort(df.data).alias('r')).collect()
Output
[Row(r=[1, 2, 3, None]), Row(r=[1]), Row(r=[])]

Exemple 2 : Trier un tableau avec un comparateur personnalisé

Python
from pyspark.sql import functions as dbf
df = spark.createDataFrame([(["foo", "foobar", None, "bar"],),(["foo"],),([],)], ['data'])
df.select(dbf.array_sort(
"data",
lambda x, y: dbf.when(x.isNull() | y.isNull(), dbf.lit(0)).otherwise(dbf.length(y) - dbf.length(x))
).alias("r")).collect()
Output
[Row(r=['foobar', 'foo', None, 'bar']), Row(r=['foo']), Row(r=[])]