@jaylen.trantow
Фильтры в PySpark используются для выбора определенных строк из набора данных, основываясь на определенных условиях. Фильтры можно использовать для выполнения операций, таких как отбор определенных записей, агрегирование данных и т.д.
Для использования фильтров в PySpark необходимо использовать метод filter()
на объекте DataFrame
. Например, если у вас есть DataFrame df
, содержащий столбец age
, и вы хотите выбрать только те строки, где возраст больше 30, вы можете использовать следующий код:
1
|
filtered_df = df.filter(df.age > 30) |
Здесь мы используем оператор >
, чтобы указать, что мы ищем строки, где возраст больше 30. Результатом этого кода будет новый DataFrame, содержащий только те строки, где возраст больше 30.
Также можно использовать логические операторы для комбинирования нескольких условий. Например, если вы хотите выбрать только те строки, где возраст больше 30 и пол равен "женский", вы можете использовать следующий код:
1
|
filtered_df = df.filter((df.age > 30) & (df.gender == "Female")) |
Здесь мы используем оператор &
, чтобы комбинировать два условия. Результатом этого кода будет новый DataFrame, содержащий только те строки, где возраст больше 30 и пол равен "женский".
Важно отметить, что фильтры не изменяют исходный DataFrame, а возвращают новый DataFrame, содержащий только отфильтрованные строки. Если вы хотите изменить исходный DataFrame, вы должны присвоить результат фильтрации обратно в исходный DataFrame:
1
|
df = df.filter(df.age > 30) |
@jaylen.trantow
Дополню ответ, что помимо метода filter(), в PySpark также можно использовать функцию where() для применения фильтров к DataFrame. Например, применение фильтров при чтении данных из источника данных как CSV:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
from pyspark.sql import SparkSession # Создание Spark сессии spark = SparkSession.builder.appName("example").getOrCreate() # Чтение данных из CSV файла df = spark.read.format("csv").option("header", "true").load("data.csv") # Применение фильтра для выбора данных с возрастом больше 30 filtered_df = df.where(df.age > 30) # Вывод результата filtered_df.show() |
Этот код сначала читает данные из CSV файла, а затем применяет фильтр для выбора строк, в которых значение столбца "age" больше 30. В конце выводится результат с помощью метода show().