array_sort

Collection işlevi: Giriş dizisini artan düzende sıralar. Giriş dizisinin öğeleri sıralanabilir olmalıdır. Null öğeler, döndürülen dizinin sonuna yerleştirilir. Spark Connect'i destekler.

İlgili Databricks SQL fonksiyonu için bakınız array_sort fonksiyonu.

Sözdizimi

from pyspark.sql import functions as dbf

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

Parametreler

Parametre Türü Description
col pyspark.sql.Column veya str Sütun veya ifadenin adı.
comparator callableopsiyonel İlk öğe ikinci öğeden küçük, buna eşit veya ondan büyük olduğundan negatif bir tamsayı, 0 veya pozitif bir tamsayı döndüren ikili işlev. Karşılaştırıcı işlevi null döndürürse işlev başarısız olur ve bir hata oluşturur.

İade

pyspark.sql.Column: sıralanmış dizi.

Örnekler

Örnek 1: Bir diziyi varsayılan artan düzende sıralama

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

Örnek 2: Bir diziyi özel bir karşılaştırıcıyla sıralama

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