Skip to content

array_compact(col)

Описание

Функция array_compact() удаляет NULL значения из массива, сохраняя порядок остальных элементов.

Параметры

  • col: Column - массив для удаления NULL значений

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

Array - массив без NULL значений

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

from pyspark.sql.functions import array_compact, array, lit

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

# Удаляем NULL значения
df.select(
    "array_col",
    array_compact("array_col").alias("compacted")
).show(truncate=False)

# Результат:
# +----------------+------------+
# |array_col       |compacted   |
# +----------------+------------+
# |[1, null, 2, null, 3]|[1, 2, 3]  |
# |[a, null, b, null, c]|[a, b, c]  |
# |null            |null        |
# +----------------+------------+

# Пример с разными типами данных
df = spark.createDataFrame([
    ([1.0, None, 2.0],),
    ([True, None, False],),
    ([None, 1, None],)
], ["values"])

df.select(
    "values",
    array_compact("values").alias("compacted")
).show(truncate=False)

Примечания

  • Если массив NULL, возвращается NULL
  • Сохраняется порядок ненулевых элементов
  • Для удаления дубликатов используйте array_distinct()
  • Для удаления конкретного элемента используйте array_remove()
  • Для создания массива используйте array()