Освоение агрегатных функций PySpark: подробное руководство

В мире обработки больших данных PySpark стал незаменимым инструментом для инженеров и специалистов по данным. Одной из самых мощных особенностей PySpark является обширный набор агрегатных функций. В этой статье блога мы рассмотрим различные эти функции, предоставив разговорные объяснения и примеры кода, которые помогут вам понять и использовать их в своих проектах PySpark.

Агрегатные функции:

  1. count(): Начнем с классики! Функция count()возвращает количество строк в DataFrame или столбце.
from pyspark.sql import SparkSession
spark = SparkSession.builder.getOrCreate()
# Count the number of rows in a DataFrame
df_count = df.count()
# Count the number of rows in a specific column
col_count = df.select("column_name").count()
  1. sum(): Как следует из названия, функция sum()вычисляет сумму значений в столбце.
# Calculate the sum of a column
total_sum = df.select("column_name").sum()
  1. avg(): функция avg()вычисляет среднее значение числового столбца.
# Calculate the average of a numeric column
column_avg = df.select("numeric_column").avg()
  1. min() и max(): эти функции возвращают минимальное и максимальное значения в столбце соответственно.
# Find the minimum value in a column
min_value = df.select("column_name").min()
# Find the maximum value in a column
max_value = df.select("column_name").max()
  1. first() и Last(): эти функции возвращают первое и последнее значения в столбце соответственно.
# Get the first value in a column
first_value = df.select("column_name").first()
# Get the last value in a column
last_value = df.select("column_name").last()
  1. sumDistinct(): функция sumDistinct()вычисляет сумму различных значений в столбце.
# Calculate the sum of distinct values in a column
distinct_sum = df.select("column_name").sumDistinct()
  1. variance() и stddev(): эти функции вычисляют дисперсию и стандартное отклонение числового столбца соответственно.
# Compute the variance of a numeric column
column_variance = df.select("numeric_column").variance()
# Compute the standard deviation of a numeric column
column_stddev = df.select("numeric_column").stddev()
  1. collect_list() и Collect_set(): эти функции создают список или набор значений из столбца соответственно.
# Create a list of values from a column
value_list = df.select("column_name").collect_list()
# Create a set of distinct values from a column
value_set = df.select("column_name").collect_set()

В этой статье мы рассмотрели широкий спектр агрегатных функций PySpark, приведя примеры кода и разговорные объяснения для каждой из них. Освоив эти функции, вы сможете эффективно выполнять агрегирование и получать ценную информацию из больших данных. Подсчитываете ли вы строки, вычисляете суммы или находите минимальные и максимальные значения, PySpark предлагает мощный набор инструментов для удовлетворения ваших потребностей в обработке данных.