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()