Delen via


array_sort

Verzamelingsfunctie: Hiermee sorteert u de invoermatrix in oplopende volgorde. De elementen van de invoermatrix moeten ordelijk zijn. Null-elementen worden aan het einde van de geretourneerde matrix geplaatst. Ondersteunt Spark Connect.

Voor de overeenkomstige Databricks SQL-functie, zie de array_sort functie.

Syntaxis

from pyspark.databricks.sql import functions as dbf

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

Parameterwaarden

Kenmerk Typologie Description
col pyspark.sql.Column of str Naam van kolom of expressie.
comparator callablefacultatief Een binaire functie die een negatief geheel getal, 0 of een positief geheel getal retourneert als het eerste element kleiner is dan, gelijk aan of groter is dan het tweede element. Als de functie comparator null retourneert, mislukt de functie en wordt er een fout gegenereerd.

Retouren

pyspark.sql.Column: gesorteerde matrix.

Voorbeelden

Voorbeeld 1: Een matrix sorteren in oplopende standaardvolgorde

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

Voorbeeld 2: Een matrix sorteren met een aangepaste vergelijking

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