В мире обработки больших данных PySpark стал незаменимым инструментом для инженеров и специалистов по данным. Одной из самых мощных особенностей PySpark является обширный набор агрегатных функций. В этой статье блога мы рассмотрим различные эти функции, предоставив разговорные объяснения и примеры кода, которые помогут вам понять и использовать их в своих проектах PySpark.
Агрегатные функции:
- 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()
- sum(): Как следует из названия, функция
sum()
вычисляет сумму значений в столбце.
# Calculate the sum of a column
total_sum = df.select("column_name").sum()
- avg(): функция
avg()
вычисляет среднее значение числового столбца.
# Calculate the average of a numeric column
column_avg = df.select("numeric_column").avg()
- 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()
- 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()
- sumDistinct(): функция
sumDistinct()
вычисляет сумму различных значений в столбце.
# Calculate the sum of distinct values in a column
distinct_sum = df.select("column_name").sumDistinct()
- 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()
- 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 предлагает мощный набор инструментов для удовлетворения ваших потребностей в обработке данных.