Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
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=[])]