Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Agregação e Agrupamento em Python | Trabalhando com Dados
Fundamentos do Databricks: Um Guia para Iniciantes

Agregação e Agrupamento em Python

Deslize para mostrar o menu

Note
Definição

Agregação é o processo de resumir várias linhas de dados em um único valor significativo, como soma, média ou contagem. Agrupamento permite aplicar esses resumos em categorias específicas, como encontrar o total de vendas para cada região distinta.

Raramente é necessário analisar milhões de linhas individuais de dados brutos. Normalmente, o objetivo é obter uma visão geral — totais, médias ou contagens por categoria. No Spark, isso pode ser alcançado combinando dois métodos poderosos: groupBy() e agg().

O padrão básico do groupBy

Para resumir dados por uma categoria específica, primeiro utiliza-se o método groupBy(). Isso instrui o Spark a reunir todas as linhas que compartilham o mesmo valor (como "cut" na tabela diamonds) em um grupo. No entanto, o agrupamento por si só não faz nada; é necessário segui-lo com uma agregação.

# Group by cut and count how many rows are in each
count_df = df.groupBy("cut").count()

display(count_df)

Realizando operações matemáticas com sum(), avg() e max()

Após agrupar seus dados, é possível aplicar funções matemáticas às colunas numéricas. Para visualizar o lucro total por tipo de item, utilize .sum().

# Total total_depth per cut category
total_depth = df.groupBy("cut").sum("x")

display(total_depth)

Observe que o Spark renomeia automaticamente a coluna para sum(x). No próximo capítulo, aprenderemos como tornar esses nomes mais profissionais.

O método agg() para múltiplas métricas

Quando for necessário calcular mais de uma métrica ao mesmo tempo—por exemplo, tanto o lucro médio quanto a receita máxima para cada região—utiliza-se o método .agg() (aggregate). Este é o padrão profissional para construir resumos complexos.

from pyspark.sql import functions as F

# Calculate multiple metrics at once
summary_df = df.groupBy("cut").agg(
    F.sum("x"),
    F.avg("y"),
    F.max("z")
)

display(summary_df)
Note
Nota

Importação de pyspark.sql.functions as F para acessar essas ferramentas matemáticas avançadas.

Agrupamento por Múltiplas Colunas

Não há limitação ao agrupar por apenas uma categoria. É possível passar uma lista de colunas para visualizar os dados em um nível mais detalhado, como o total de x para cada Color Type dentro de cada Cut.

multi_group_df = df.groupBy("cut", "color").sum("x")

display(multi_group_df)

Ordenando os Resultados

Dados agregados geralmente são mais fáceis de ler quando estão ordenados. É possível encadear o método .orderBy() ao final da agregação para visualizar as categorias de melhor desempenho no topo da lista.

# Show highest profit categories first
sorted_df = summary_df.orderBy("sum(x)", ascending=False)

display(sorted_df)

1. Qual método deve ser chamado ANTES de aplicar um sum() ou avg() se você deseja que os resultados sejam divididos por categoria?

2. Qual é o benefício de usar o método .agg() em vez de apenas .sum()?

question mark

Qual método deve ser chamado ANTES de aplicar um sum() ou avg() se você deseja que os resultados sejam divididos por categoria?

Selecione a resposta correta

question mark

Qual é o benefício de usar o método .agg() em vez de apenas .sum()?

Selecione a resposta correta

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 4. Capítulo 6

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

Seção 4. Capítulo 6
some-alt