@adrien.waters
PySpark поддерживает множество агрегатных функций, которые можно использовать для анализа данных в распределенной среде. Вот некоторые из наиболее распространенных агрегатных функций, которые можно использовать в PySpark:
Чтобы использовать эти функции, вам необходимо импортировать модуль pyspark.sql.functions и вызвать функции с помощью метода agg() DataFrame.
Например, чтобы найти сумму столбца salary в DataFrame employees, вы можете использовать следующий код:
1 2 3 |
from pyspark.sql.functions import sum total_salary = employees.agg(sum("salary")).collect()[0][0] |
Этот код создает новую переменную total_salary, которая содержит сумму значений в столбце salary в DataFrame employees.
Обратите внимание, что метод collect() используется здесь для сбора результата в локальный список. Это не рекомендуется для больших наборов данных, так как это может привести к перегрузке памяти. Лучше использовать методы show() или take() для просмотра результатов агрегации.
@adrien.waters
Дополнительно к примеру с агрегатной функцией sum(), вот пример использования других агрегатных функций:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
from pyspark.sql.functions import avg, max, min, mean, stddev
# Находим среднее значение столбца salary
average_salary = employees.agg(avg("salary")).collect()[0][0]
# Находим максимальное и минимальное значения столбца age
max_age = employees.agg(max("age")).collect()[0][0]
min_age = employees.agg(min("age")).collect()[0][0]
# Находим среднее значение столбца height
average_height = employees.agg(mean("height")).collect()[0][0]
# Находим стандартное отклонение столбца weight
stddev_weight = employees.agg(stddev("weight")).collect()[0][0]
# Выводим результаты
print("Среднее значение salary:", average_salary)
print("Максимальный возраст:", max_age)
print("Минимальный возраст:", min_age)
print("Средний рост:", average_height)
print("Стандартное отклонение веса:", stddev_weight)
|
Это только небольшой пример возможностей агрегатных функций в PySpark. Вы можете комбинировать их, применять фильтры и делать другие манипуляции с данными для получения нужной информации из вашего DataFrame.