Freigeben über


array_sort

Sammlungsfunktion: Sortiert das Eingabearray in aufsteigender Reihenfolge. Die Elemente des Eingabearrays müssen geordnet sein. Null-Elemente werden am Ende des zurückgegebenen Arrays platziert. Unterstützt Spark Connect.

Die entsprechende Databricks SQL-Funktion finden Sie unter array_sort Funktion.

Syntax

from pyspark.databricks.sql import functions as dbf

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

Die Parameter

Parameter Typ Description
col pyspark.sql.Column oder str Name der Spalte oder des Ausdrucks.
comparator callablewahlfrei Eine binäre Funktion, die eine negative ganze Zahl, 0 oder eine positive ganze Zahl zurückgibt, wenn das erste Element kleiner als, gleich oder größer als das zweite Element ist. Wenn die Vergleichsfunktion NULL zurückgibt, schlägt die Funktion fehl und löst einen Fehler aus.

Rückkehr

pyspark.sql.Column: sortiertes Array.

Examples

Beispiel 1: Sortieren eines Arrays in aufsteigender Standardreihenfolge

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=[])]

Beispiel 2: Sortieren eines Arrays mit einem benutzerdefinierten Vergleichszeichen

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=[])]