Skip to content

sort_array(column, asc=True)

Описание

Функция sort_array() сортирует элементы массива в порядке возрастания или убывания. Если массив NULL, возвращается NULL.

Параметры

  • column: Column - массив для сортировки
  • asc: Boolean - флаг сортировки (True - по возрастанию, False - по убыванию)

Возвращаемое значение

Array - отсортированный массив

Пример использования

from pyspark.sql import SparkSession
from pyspark.sql.functions import sort_array

# Создаем SparkSession
spark = SparkSession.builder.appName("sort_array_example").getOrCreate()

# Создаем DataFrame с массивами
data = [
    (1, [3, 1, 2]),
    (2, ["b", "a", "c"]),
    (3, []),
    (4, None)
]
df = spark.createDataFrame(data, ["id", "array"])

# Сортируем массивы
result = df.select(
    "id",
    sort_array("array").alias("asc_sorted"),
    sort_array("array", asc=False).alias("desc_sorted")
).show()

# Результат:
# +---+----------+------------+
# | id|asc_sorted|desc_sorted|
# +---+----------+------------+
# |  1| [1, 2, 3]| [3, 2, 1] |
# |  2| [a, b, c]| [c, b, a] |
# |  3|        []|         []|
# |  4|      null|       null|
# +---+----------+------------+

Примечания

  • Сортировка выполняется в лексикографическом порядке для строк
  • Для числовых массивов сортировка выполняется по значению
  • Для работы с Map-столбцами используйте map_keys() и map_values()
  • Для фильтрации массивов используйте array_filter()