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
from pyspark.sql import functions as dbf
dbf.array_sort(col=<col>, comparator=<comparator>)
parameter
parameter | Type | Description |
|---|---|---|
|
| Nom de la colonne ou de l'expression. |
|
| 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
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()
[Row(r=[1, 2, 3, None]), Row(r=[1]), Row(r=[])]
Exemple 2 : Trier un tableau avec un comparateur personnalisé
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()
[Row(r=['foobar', 'foo', None, 'bar']), Row(r=['foo']), Row(r=[])]