Skip to content

filter(col, f)

Описание

Функция filter() фильтрует элементы массива на основе заданного условия, возвращая новый массив, содержащий только те элементы, которые удовлетворяют условию.

Параметры

  • col: Column - массив для фильтрации
  • f: функция-предикат, принимающая элемент массива и возвращающая булево значение

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

Array - новый массив, содержащий только отфильтрованные элементы

Примеры

from pyspark.sql import SparkSession
from pyspark.sql.functions import filter, col

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

# Создаем тестовый DataFrame
data = [("1", [1, 2, 3, 4, 5]), ("2", [10, 20, 30, 40, 50])]
df = spark.createDataFrame(data, ["id", "numbers"])

# Фильтруем только четные числа
df_filtered = df.select(
    "id",
    filter(col("numbers"), lambda x: x % 2 == 0).alias("even_numbers")
)

df_filtered.show()

Результат:

+---+-------------+
| id|even_numbers|
+---+-------------+
|  1|      [2, 4]|
|  2|  [10, 20, 30, 40, 50]|
+---+-------------+