Por que tomar cuidado com o uso de DISTINCT?

Se existe a menor desconfiança da possibilidade de um DataFrame apresentar linhas duplicadas, o melhor é garantir que elas serão removidas antes de carregar os dados no data lake do que arriscar, certo? Certo. O problema é que muitas vezes essa “garantia” vem com um custo, usando a cláusula DISTINCT em todos possíveis DataFrames, mesmo quando não precisamos dele. Acredito que o uso indiscriminado dessa cláusula é um evento canônico na vida de todo profissional de dados, e que vale a pena ser esclarecido para que novos profissionais não cometam esse equívoco de forma inconsciente....

outubro 8, 2024 · Leandro Kellermann de Oliveira

Adicionando a descrição de um job em uma aplicação Apache Spark

O objetivo da descrição de um job em uma aplicação Apache Spark é facilitar a localização de oportunidades de otimização. Utilizando o método setJobGroup corretamente, é possível agilizar a busca por etapas candidatas à melhoria na Spark UI e relacioná-las com o código da aplicação. Neste curto texto, apresento como fazer isso. O problema Suponha que gostaríamos de realizar o benchmark para uma aplicação simples envolvendo apenas a leitura e ordenação dos dados,onde desejamos avaliar o desempenho da sua execução em função do número de partições....

setembro 30, 2024 · Leandro Kellermann de Oliveira

O processo executor e sua memória - Parte 1

Na postagem anterior, abordei alguns conceitos relacionados à estrutura de uma aplicação Apache Spark, bem como introduzi a memória do processo executor. Nesta publicação, entrarei em detalhes a respeito deste recurso partindo ideia de tarefa, comum ao texto anterior. Na primeira seção, “Tarefas e partições”, discorro sobre a relação entre tarefas e partições entre si e com o hardware, bem como levanto novas questões a considerar nesta e em outras publicações....

setembro 24, 2024 · Leandro Kellermann de Oliveira

Arquitetura de uma aplicação Apache Spark

Gostaria de apresentar (mais) uma abordagem para a compreensão de conceitos relacionados ao Apache Spark. Muito do que será apresentado encontra-se facilmente em livros, publicações em blogs (como este), cursos pagos e vídeo-aulas no YouTube. Aqui, só organizei esses materiais de uma nova forma e, considerando a minha experiência, evidenciei alguns detalhes importantes que geralmente passam despercebidos. Este texto foi dividido em três grandes seções. Na primeira seção, “Uma visão geral dos componentes do Apache Spark”, abordo de forma ampla os componentes básicos do Apache Spark e o papel de cada numa aplicação....

setembro 22, 2024 · Leandro Kellermann de Oliveira