Condividi tramite


array_sort

Funzione raccolta: ordina la matrice di input in ordine crescente. Gli elementi della matrice di input devono essere ordinabili. Gli elementi Null verranno posizionati alla fine della matrice restituita. Supporta Spark Connect.

Per la funzione SQL di Databricks corrispondente, vedere array_sort funzione.

Sintassi

from pyspark.databricks.sql import functions as dbf

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

Parametri

Parametro TIPO Description
col pyspark.sql.Column o str Nome della colonna o dell'espressione.
comparator callableopzionale Funzione binaria che restituisce un numero intero negativo, 0 o un numero intero positivo perché il primo elemento è minore, uguale o maggiore del secondo elemento. Se la funzione di confronto restituisce null, la funzione avrà esito negativo e genererà un errore.

Restituzioni

pyspark.sql.Column: matrice ordinata.

Esempi

Esempio 1: Ordinamento di una matrice in ordine crescente predefinito

from pyspark.databricks.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=[])]

Esempio 2: Ordinamento di una matrice con un confronto personalizzato

from pyspark.databricks.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=[])]