Compartir vía


array_sort

Función de colección: ordena la matriz de entrada en orden ascendente. Los elementos de la matriz de entrada deben ser ordenables. Los elementos NULL se colocarán al final de la matriz devuelta. Soporta Spark Connect.

Para obtener la función SQL de Databricks correspondiente, consulte array_sort function.

Syntax

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 o str Nombre de columna o expresión.
comparator callableopcional Función binaria que devuelve un entero negativo, 0 o un entero positivo, ya que el primer elemento es menor, igual o mayor que el segundo elemento. Si la función del comparador devuelve null, se producirá un error en la función y se producirá un error.

Devoluciones

pyspark.sql.Column: matriz ordenada.

Examples

Ejemplo 1: Ordenación de una matriz en orden ascendente predeterminado

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

Ejemplo 2: Ordenar una matriz con un 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=[])]