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]|
+---+-------------+