Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Функция сбора: сортировка входного массива в порядке возрастания. Элементы входного массива должны быть упорядочены. Элементы NULL будут помещены в конец возвращаемого массива. Поддерживает Spark Connect.
Для соответствующей функции Databricks SQL смотрите функцию array_sort.
Синтаксис
from pyspark.databricks.sql import functions as dbf
dbf.array_sort(col=<col>, comparator=<comparator>)
Параметры
| Параметр | Тип | Description |
|---|---|---|
col |
pyspark.sql.Column или str |
Имя столбца или выражения. |
comparator |
callableнеобязательный |
Двоичная функция, возвращающая отрицательное целое число, 0 или положительное целое число, так как первый элемент меньше, равно или больше второго элемента. Если функция сравнения возвращает значение NULL, функция завершится ошибкой и вызовет ошибку. |
Возвраты
pyspark.sql.Column: отсортированный массив.
Примеры
Пример 1. Сортировка массива по умолчанию по возрастанию
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=[])]
Пример 2. Сортировка массива с помощью пользовательского компратора
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=[])]