Mais de 15 perguntas e respostas da entrevista do Apache Spark 2022
Publicados: 2021-01-08Qualquer um que esteja familiarizado com o Apache Spark sabe por que ele está se tornando uma das ferramentas de Big Data mais preferidas atualmente – ele permite computação super-rápida.
O fato de o Spark oferecer suporte ao processamento rápido de Big Data está se tornando um sucesso entre as empresas em todo o mundo. De grandes nomes como Amazon, Alibaba, eBay e Yahoo, a pequenas empresas do setor, o Spark conquistou um enorme número de seguidores. Graças a isso, as empresas procuram continuamente profissionais de Big Data qualificados com experiência no domínio do Spark.
Para todos que desejam conseguir empregos relacionados a um perfil de Big Data (Spark), você deve primeiro resolver com sucesso a entrevista do Spark. Aqui está algo que pode levá-lo um passo mais perto de seu objetivo - 15 perguntas mais comuns da entrevista do Apache Spark!
- O que é Spark?
O Spark é uma estrutura de Big Data de computação em cluster de código aberto que permite o processamento em tempo real. É um mecanismo de processamento de dados de uso geral capaz de lidar com diferentes cargas de trabalho, como lote, interativo, iterativo e streaming. O Spark executa cálculos na memória que ajudam a aumentar a velocidade do processamento de dados. Ele pode ser executado de forma independente, no Hadoop ou na nuvem.
- O que é RDD?
RDD ou Resilient Distributed Dataset é a estrutura de dados primária do Spark. É uma abstração essencial no Spark que representa a entrada de dados em um formato de objeto. RDD é uma coleção de objetos imutáveis e somente leitura em que cada nó é particionado em partes menores que podem ser computadas em diferentes nós de um cluster para permitir o processamento de dados independente.
- Diferencie entre Apache Spark e Hadoop MapReduce.
Os principais diferenciais entre Apache Spark e Hadoop MapReduce são:

- O Spark é mais fácil de programar e não requer abstrações. MapReduce é escrito em Java e é difícil de programar. Precisa de abstrações.
- O Spark possui um modo interativo, enquanto o MapReduce não o possui. No entanto, ferramentas como Pig e Hive facilitam o trabalho com o MapReduce.
- O Spark permite processamento em lote, streaming e aprendizado de máquina no mesmo cluster. O MapReduce é mais adequado para processamento em lote.
- O Spark pode modificar os dados em tempo real via Spark Streaming. Não existe tal provisão em tempo real no MapReduce – você só pode processar um lote de dados armazenados.
- O Spark facilita cálculos de baixa latência armazenando em cache resultados parciais na memória. Isso requer mais espaço de memória. Ao contrário, MapReduce é orientado a disco que permite armazenamento permanente.
- Como o Spark pode executar tarefas de processamento na memória, ele pode processar dados muito mais rápido que o MapReduce.
- O que é o Vetor Esparso?
Um vetor esparso é composto por duas matrizes paralelas, uma para índices e outra para valores. Eles são usados para armazenar entradas diferentes de zero para economizar espaço de memória.
- O que é particionamento no Spark?
O particionamento é usado para criar unidades de dados menores e lógicas para ajudar a acelerar o processamento de dados. No Spark, tudo é um RDD particionado. As partições paralelizam o processamento de dados distribuídos com tráfego de rede mínimo para enviar dados aos vários executores do sistema.
- Defina Transformação e Ação.
Tanto a Transformação quanto a Ação são operações executadas em um RDD.
Quando a função Transformação é aplicada a um RDD, ela cria outro RDD. Dois exemplos de transformação são map() e filer() – enquanto map() aplica a função transferida para ele em cada elemento do RDD e cria outro RDD, filter() cria um novo RDD selecionando componentes do RDD atual que transferem o argumento da função. Ele é acionado somente quando ocorre uma Ação.
Uma ação recupera os dados do RDD para a máquina local. Ele aciona a execução usando um gráfico de linhagem para carregar os dados no RDD original, realizar todas as transformações intermediárias e retornar os resultados finais ao programa Driver ou gravá-los no sistema de arquivos.
- O que é um gráfico de linhagem?
No Spark, os RDDs codependem uns dos outros. A representação gráfica dessas dependências entre os RDDs é chamada de gráfico de linhagem. Com informações do gráfico de linhagem, cada RDD pode ser calculado sob demanda – se alguma vez um pedaço de um RDD persistente for perdido, os dados perdidos podem ser recuperados usando as informações do gráfico de linhagem.
- Qual é o objetivo do SparkCore?
SparkCore é o motor base do Spark. Ele executa uma série de funções vitais, como tolerância a falhas, gerenciamento de memória, monitoramento de trabalhos, agendamento de trabalhos e interação com sistemas de armazenamento.

- Nomeie as principais bibliotecas do Spark Ecosystem.
As principais bibliotecas do Spark Ecosystem são:
- Spark Streaming – É usado para habilitar o streaming de dados em tempo real.
- Spark MLib- É a biblioteca de aprendizado de máquina do Spark que é comumente usada em algoritmos de aprendizado como classificação, regressão, clustering, etc.
- Spark SQL – Ajuda a executar consultas semelhantes a SQL nos dados do Spark, aplicando ferramentas de visualização padrão ou de inteligência de negócios.
- Spark GraphX – É uma API Spark para processamento de gráficos para desenvolver e transformar gráficos interativos.
- O que é o YARN? É necessário instalar o Spark em todos os nós de um cluster YARN?
O Yarn é uma plataforma central de gerenciamento de recursos no Spark. Ele permite a entrega de operações escalonáveis em todo o cluster Spark. Enquanto o Spark é a ferramenta de processamento de dados, o YARN é o gerenciador de contêiner distribuído. Assim como o Hadoop MapReduce pode ser executado no YARN, o Spark também pode ser executado no YARN.
Não é necessário instalar o Spark em todos os nós de um cluster YARN porque o Spark pode ser executado em cima do YARN – ele é executado independentemente de sua instalação. Ele também inclui diferentes configurações para execução no YARN, como master, queue, deploy-mode, driver-memory, executor-memory e executor-cores.
- O que é o Catalyst Framework?
A estrutura Catalyst é uma estrutura de otimização exclusiva no Spark SQL. O principal objetivo de uma estrutura de catalisador é permitir que o Spark transforme automaticamente as consultas SQL adicionando novas otimizações para desenvolver um sistema de processamento mais rápido.
- Quais são os diferentes tipos de gerenciadores de cluster no Spark?
A estrutura do Spark é composta por três tipos de gerenciadores de cluster:
- Autônomo – o gerenciador primário usado para configurar um cluster.
- Apache Mesos – O gerenciador de cluster integrado e generalizado do Spark que pode executar o Hadoop MapReduce e outros aplicativos também.
- Yarn – O gerenciador de cluster para lidar com o gerenciamento de recursos no Hadoop.
- O que é um nó de trabalho?
Worker Node é o “nó escravo” do Nó Mestre. Refere-se a qualquer nó que possa executar o código do aplicativo em um cluster. Assim, o nó mestre atribui trabalho aos nós de trabalho que executam as tarefas atribuídas. Os nós de trabalho processam os dados armazenados e, em seguida, relatam ao nó mestre.

- O que é um Spark Executor?
Um Spark Executor é um processo que executa cálculos e armazena os dados no nó do trabalhador. Toda vez que o SparkContext se conecta a um gerenciador de cluster, ele adquire um Executor nos nós de um cluster. Esses executores executam as tarefas finais que são atribuídas a eles pelo SparkContext.
- O que é um arquivo Parquet?
O arquivo Parquet é um arquivo de formato colunar que permite que o Spark SQL leia e grave operações. O uso do arquivo parquet (formato colunar) tem muitas vantagens:
- O formato de armazenamento em coluna consome menos espaço.
- O formato de armazenamento de coluna mantém as operações de E/S sob controle.
- Ele permite que você acesse colunas específicas com facilidade.
- Ele segue a codificação específica do tipo e fornece dados mais bem resumidos.
Pronto - nós facilitamos você no Spark. Esses 15 conceitos fundamentais no Spark ajudarão você a começar a usar o Spark.
Se você estiver interessado em saber mais sobre Big Data, confira nosso programa PG Diploma in Software Development Specialization in Big Data, projetado para profissionais que trabalham e fornece mais de 7 estudos de caso e projetos, abrange 14 linguagens e ferramentas de programação, práticas práticas workshops, mais de 400 horas de aprendizado rigoroso e assistência para colocação de emprego com as principais empresas.
Confira nossos outros Cursos de Engenharia de Software no upGrad.