Pular para conteúdo

Trasnformações e Ações

Transformações

O que são e quais as diferenças entre transformações e ações? Em uma seção anterior, discutimos a diferença entre transformações e ações no Spark, especialmente no que tange à avaliação "lazy". Agora, vamos nos aprofundar ainda mais nessa distinção.

Começando pelas operações de transformação no Spark, identificamos dois principais tipos: as transformações narrow e as transformações wide.

Transformações Narrow: Nestas, os dados necessários para computar uma partição específica já estão presentes na própria partição. Alguns exemplos de tais operações incluem select, filter, map, flatMap, sample e union.

Transformações Wide: Aqui, os dados requeridos para processar uma partição específica podem estar espalhados por diversas partições. Algumas das operações que se encaixam neste tipo são groupByKey, repartition, reduceByKey, distinct, join e coalesce.

Narrow!

Ações

Em contraste, as ações são operações que exigem um cálculo imediato e são categorizadas como "eager" (ansiosas). Exemplos destas operações englobam comandos como show, count, collect e save. É essencial observar que um script no Spark só começará a executar transformações (sejam elas narrow ou wide) após uma ação ser invocada. Da mesma maneira, eventuais erros só serão detectados após a execução dessa ação. Abaixo temos dois exemplos de quando uma ação é utilizada.

spartk_tarefas

spartk_tarefas

Referências

Wide vs Narrow Transformations in Spark/Distributed Compute
What are Transformations? - Databricks
Understanding Transformations vs Actions and Narrow vs Wide Transformations
Spark: The Definitive Guide (In Short)