O Apache Spark é um framework para processamento paralelo e oferece suporte ao processamento na memória para aumentar o desempenho de aplicações de big data. Em relação aos RDDs e a suas operações, assinale a afirmativa incorreta.
- A)Os RDDs suportam dois tipos de operações: transformações, que criam um novo conjunto de dados a partir de um existente, e ações, que retornam um valor ao Driver Program após executar uma computação no conjunto de dados.
Certa: RDDs têm transformações, que geram novos conjuntos de dados, e ações, que retornam resultados ao Driver Program.
- B)Map é uma transformação que passa cada elemento do conjunto de dados por uma função e retorna um novo RDD representando os resultados.
Certa: map é uma transformação clássica que aplica uma função a cada elemento e produz um novo RDD.
- C)Reduce é uma ação que agrega todos os elementos do RDD usando alguma função e retorna o resultado final ao Driver Program.
Certa: reduce é uma ação, pois agrega os elementos e devolve um único resultado ao Driver Program.
- D)Todas as transformações no Spark são lazy, pois não calculam seus resultados imediatamente. Em vez disso, eles apenas lembram as transformações aplicadas a algum conjunto de dados.
Certa: as transformações no Spark são lazy e ficam apenas registradas até serem necessárias na execução.
- E)As transformações só são computadas quando uma ação ou determinadas transformações exigem que um resultado seja retornado Driver Program.
Errada: não são transformações que disparam a computação; em regra, a execução só acontece quando uma ação é chamada.
Gabarito: E
No Apache Spark, os RDDs são a base do processamento distribuído: pense neles como conjuntos de dados resilientes que podem ser divididos entre os nós do cluster. O ponto mais importante aqui é que o Spark tenta não fazer trabalho antes da hora. Ele registra o que voce quer fazer e só executa de fato quando isso se torna necessário. As operações em RDDs se dividem em duas famílias: transformações e ações. Transformações criam novos RDDs, como map, filter e reduceByKey. Já as ações geram um resultado final para o Driver Program ou gravam o resultado externo, como count, collect e reduce. Por isso, a letra E está errada. Ela diz que as transformações só são computadas quando uma ação ou determinadas transformações exigem retorno ao Driver Program. A ideia correta é que as transformações são lazy, ou seja, ficam apenas no plano lógico até que uma ação dispare a execução do grafo de operações. Transformação, por si, não “puxa” execução para o Driver. Esse comportamento de avaliação preguiçosa é um traço clássico do Spark e ajuda a otimizar o processamento, reduzindo etapas desnecessárias e melhorando desempenho. Em prova, desconfie quando a banca misturar transformação com execução imediata: no Spark, quem costuma apertar o botão de começar é a ação.