O Apache Spark é um mecanismo de análise unificado para processamento de dados em grande escala com diversas aplicações em ciência de dados, machine learning e processamento de gráficos. Considerando essa ferramenta, julgue as afirmativas a seguir. I. O Spark pode ser executado no Apache Hadoop, Kubernetes, por conta própria, na nuvem, em máquinas isoladas ou em clusters. II. DataFrames, SQL e Structured Streaming são exemplos de APIs do Spark. III. Uma diferença entre o Spark e o MapReduce é que o Spark processa e mantém os dados na memória para as etapas subsequentes, sem gravar ou ler do disco, gerando maior velocidade de processamento. Está correto o que se afirma em
- A)I, apenas.
A alternativa afirma que somente a afirmativa I estaria correta, isto é, que o Spark pode rodar em diferentes ambientes de execução, como Hadoop, Kubernetes, modo standalone, nuvem e até em máquina isolada ou em cluster. O ponto é que a II também está certa ao indicar DataFrames, SQL e Structured Streaming como APIs do Spark, e a III também está certa ao destacar o processamento em memória como diferencial em relação ao MapReduce. Assim, a opção restringe demais o conjunto de assertivas verdadeiras.
- B)II, apenas.
A alternativa sustenta que apenas a afirmativa II estaria correta, ou seja, que DataFrames, SQL e Structured Streaming são APIs do Spark. Isso procede, porque o ecossistema do Spark inclui mesmo essas interfaces, mas a I também está correta ao mencionar os modos de execução suportados, e a III também descreve corretamente o processamento in-memory do Spark. Portanto, o erro está em desconsiderar as demais assertivas verdadeiras.
- C)I e II, apenas.
A alternativa diz que as afirmativas I e II estão corretas, mas que a III não estaria. De fato, a I fala da capacidade do Spark de executar em diferentes gerenciadores e ambientes, e a II aponta interfaces reais do framework, mas a III também está alinhada ao conceito de processamento distribuído em memória que torna o Spark mais rápido que o MapReduce em muitas tarefas. O equívoco é excluir uma assertiva que também corresponde à arquitetura do Spark.
- D)II e III, apenas.
A alternativa afirma que apenas as afirmativas II e III estão corretas, deixando de fora a I. Embora a II esteja adequada ao listar APIs do Spark e a III expresse corretamente a vantagem do uso de memória sobre o ciclo mais rígido do MapReduce, a I também é verdadeira porque o Spark pode operar em modo local e em diversos gerenciadores de cluster, como Hadoop/YARN e Kubernetes. Por isso, falta uma das proposições corretas no conjunto indicado.
- E)I, II e III.
A alternativa reúne as três afirmativas como verdadeiras, e isso corresponde ao conteúdo técnico do Spark. A I está correta porque o Spark pode ser executado em modos diversos, como standalone, em Hadoop/YARN, Kubernetes, nuvem, máquina isolada ou cluster; a II também está correta, pois DataFrames, SQL e Structured Streaming são APIs do ecossistema Spark; e a III descreve bem o uso de memória para reduzir leituras e gravações em disco, o que costuma aumentar o desempenho em relação ao MapReduce. Assim, o conjunto apresentado é integralmente verdadeiro.
Gabarito: E
O Spark é uma plataforma bem versátil para processamento distribuído, e a ideia central da questão é essa: ele não fica preso a um único ambiente de execução. Você pode rodá-lo sobre Hadoop, em Kubernetes, em máquinas isoladas, em cluster próprio ou até em nuvem, o que torna a afirmativa I verdadeira. Em concurso, isso costuma aparecer como uma característica de “portabilidade” e facilidade de integração do Spark com diferentes infraestruturas. A afirmativa II também está correta. DataFrames, SQL e Structured Streaming são, de fato, interfaces/APIs muito conhecidas do Spark para trabalhar com dados estruturados, fazer consultas e lidar com fluxos de dados em tempo real. Na prática, é como se o Spark oferecesse várias portas de entrada para o mesmo motor: você escolhe a que faz mais sentido para o problema. A afirmativa III também é verdadeira e é um ponto clássico de comparação com o MapReduce. O Spark foi projetado para usar memória de forma intensiva, reduzindo leituras e gravações em disco entre etapas do processamento, o que acelera bastante as operações, especialmente quando há reutilização dos dados. Isso é uma das grandes razões de o Spark ser tão usado em analytics e machine learning. Por isso, o gabarito é a letra E: as três afirmativas estão corretas. Se você lembrar que o Spark é multiambiente, tem APIs variadas e ganha velocidade ao trabalhar muito em memória, já resolve boa parte das questões sobre o tema.