Compartilhar via


array_sort

Função de coleção: classifica a matriz de entrada em ordem crescente. Os elementos da matriz de entrada devem ser ordenados. Elementos nulos serão colocados no final da matriz retornada. Dá suporte ao Spark Connect.

Para a função SQL do Databricks correspondente, consulte a função array_sort.

Sintaxe

from pyspark.databricks.sql import functions as dbf

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

Parâmetros

Parâmetro Tipo Description
col pyspark.sql.Column ou str Nome da coluna ou expressão.
comparator callableopcional Uma função binária que retorna um inteiro negativo, 0 ou um inteiro positivo, pois o primeiro elemento é menor que, igual ou maior que o segundo elemento. Se a função comparador retornar nulo, a função falhará e gerará um erro.

Devoluções

pyspark.sql.Column: matriz classificada.

Exemplos

Exemplo 1: Classificando uma matriz em ordem crescente padrão

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

Exemplo 2: Classificando uma matriz com um comparador personalizado

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