Última Actualização: 25 Jan 2021
As perguntas feitas a um grande desenvolvedor de dados ou a uma entrevista de trabalho de desenvolvedor de centelha podem se enquadrar em uma das seguintes categorias baseadas em Componentes do Ecossistema de Centelha –
Adicional, exibir experiência de projeto no seguinte é fundamental –
|
Com a crescente demanda da indústria, para processar grandes dados a um ritmo mais rápido – A Centelha Ancestral está ganhando um grande impulso quando se trata de adoção empresarial. Hadoop MapReduza bem suportado a necessidade de processar grandes dados rapidamente, mas sempre houve uma necessidade entre os desenvolvedores para aprender ferramentas mais flexíveis para acompanhar o mercado superior de grandes conjuntos de dados de médio porte, para o processamento de dados em tempo real dentro de segundos.
Para suportar o impulso para um processamento de dados grandes mais rápido, há uma demanda crescente para desenvolvedores Apache Spark que podem validar sua experiência na implementação das melhores práticas para Spark – para construir soluções complexas de grandes dados. Em colaboração com e grandes especialistas da indústria de dados – nós curamos uma lista de 50 perguntas e respostas de entrevistas Apache Spark que ajudarão os estudantes/profissionais a pregar uma grande entrevista para desenvolvedores de dados e fazer a ponte entre a oferta de talento para os desenvolvedores Spark em vários segmentos da indústria.
Clique aqui para ver uma lista de 50+ resolvidos, de ponta a ponta de Grandes Soluções de Projeto de Dados e Aprendizagem de Máquina (código reutilizável + vídeos)
Empresas como Amazon, Shopify, Alibaba e eBay estão adotando o Apache Spark para suas grandes implementações de dados – espera-se que a demanda por desenvolvedores Spark cresça exponencialmente. As tendências do Google confirmam o “crescimento em forma de stick-hockey” na adoção e conscientização da Spark entre organizações de vários setores. A Spark está se tornando popular por causa de sua capacidade de lidar com o fluxo de eventos e processar grandes dados mais rapidamente do que o Hadoop MapReduce. 2017 é o melhor momento para aprimorar suas habilidades da Apache Spark e seguir uma carreira frutífera como profissional de análise de dados, cientista de dados ou grande desenvolvedor de dados.
Estes Projetos Apache Spark o ajudarão a desenvolver habilidades que o tornarão elegível para se candidatar a cargos de desenvolvedor Spark.
Perguntas e Respostas para 50 Entrevistas Apache Spark
Preparação é muito importante para reduzir a energia nervosa em qualquer grande entrevista de trabalho de dados. Independentemente da grande experiência e habilidades de dados que se possui, todo candidato teme a entrevista de trabalho cara a cara. Embora não exista uma maneira de prever exatamente quais perguntas serão feitas em qualquer grande entrevista de dados ou de trabalho de desenvolvimento de centelha – estas perguntas e respostas Apache centelha entrevista podem ajudá-lo a se preparar melhor para estas entrevistas.
Perguntas e Respostas da Entrevista Apache®813>
1) Compare Spark vs Hadoop MapReduce
Criteria |
Mapa do HadoopReduza |
Fagulha de Apache |
Memória |
Não aproveita ao máximo a memória do cluster do hadoop. | Guardar dados na memória com o uso de RDD’s. |
O uso deDisk |
MapReduce é orientado para disco. | Spark armazena os dados na memória e assegura baixa latência. |
Processamento |
Processamento apenas em lote é suportado | Suporta processamento em tempo real através de spark streaming. |
Instalação |
Está ligado ao Hadoop. | Não está ligado ao Hadoop. |
Simplicidade, Flexibilidade e Desempenho são as maiores vantagens do uso do Spark sobre o Hadoop.
- Spark é 100 vezes mais rápido que o Hadoop para grandes processamentos de dados, pois armazena os dados na memória, colocando-o em Bases de Dados Distribuídas Resilientes (RDD).
- Spark é mais fácil de programar pois vem com um modo interativo.
- Provê recuperação completa usando gráfico de linhagem sempre que algo dá errado.
Refer Spark vs Hadoop
Clique aqui para ver 52+ soluções de projeto reutilizáveis em Grandes Dados – Spark
2) O que é Shark?
A maioria dos usuários de dados conhece apenas SQL e não são bons em programação. Shark é uma ferramenta, desenvolvida para pessoas que são de um banco de dados de fundo – para acessar as capacidades do Scala MLib através da interface Hive como SQL. A ferramenta Shark ajuda os utilizadores de dados a correr Hive on Spark – oferecendo compatibilidade com a metastore da Colmeia, consultas e dados.
3) Listar alguns casos de utilização em que a Spark supera a Hadoop no processamento.
- Processamento de dados do sensor – A ‘In-memory computing’ da Hive Spark funciona melhor aqui, uma vez que os dados são recuperados e combinados a partir de diferentes fontes.
- Spark é preferível ao Hadoop para consulta de dados em tempo real
- Processamento de fluxos – Para processar logs e detectar fraudes em fluxos ao vivo para alertas, Apache Spark é a melhor solução.
4) O que é um vector esparso?
Um vector esparso tem duas matrizes paralelas – uma para índices e a outra para valores. Estes vetores são usados para armazenar entradas não zero para economizar espaço.
5) O que é RDD?
RDDs (Resilient Distributed Datasets) são abstrações básicas no Apache Spark que representam os dados que entram no sistema no formato de objeto. RDDs são usados para cálculos in-memory em grandes clusters, de uma maneira tolerante a falhas. Os RDDs são porcionados somente leitura, coleção de registros, que são –
- Immutable – RDDs não podem ser alterados.
- Resiliente – Se um nó segurando a partição falhar o outro nó leva os dados.
Build a Big Data Project Portfolio by working on real-time apache spark projects
6) Explique sobre transformações e ações no contexto de RDDs.
Transformações são funções executadas sob demanda, para produzir um novo RDD. Todas as transformações são seguidas por ações. Alguns exemplos de transformações incluem mapa, filtro e reduçãoByKey.
Acções são os resultados dos cálculos ou transformações de RDD. Após uma ação ser executada, os dados do RDD voltam para a máquina local. Alguns exemplos de ações incluem reduzir, coletar, primeiro e tomar.
7) Quais são as linguagens suportadas pelo Apache Spark para o desenvolvimento de grandes aplicações de dados?
Scala, Java, Python, R e Clojure
8) Você pode usar Spark para acessar e analisar dados armazenados em bancos de dados Cassandra?
Sim, é possível se você usar Spark Cassandra Connector.
9) É possível executar a Spark do Apache no Apache Mesos?
Sim, Apache Spark pode ser executado nos clusters de hardware gerenciados pelo Mesos.
10) Explique sobre os diferentes gerenciadores de clusters no Apache Spark
Os 3 diferentes gerenciadores de clusters suportados no Apache Spark são:
- YARN
- Apache Mesos -Tem recursos ricos de agendamento e são bem adequados para executar o Spark junto com outras aplicações. É vantajoso quando vários usuários executam shells interativas, pois reduz a alocação da CPU entre comandos.
- Desdobramentos de Standalone – Bem adequado para novos desdobramentos que só rodam e são fáceis de configurar.
11) Como Spark pode ser conectado ao Apache Mesos?
Conectar Spark com Mesos-
- Configurar o programa spark driver para conectar ao Mesos. O pacote binário Spark deve estar em um local acessível pelo Mesos. (ou)
- Instalar Apache Spark no mesmo local que o Apache Mesos e configurar a propriedade ‘spark.mesos.executor.home’ para apontar para o local onde ele está instalado.
12) Como você pode minimizar as transferências de dados ao trabalhar com Spark?
Minimizar as transferências de dados e evitar embaralhamento ajuda a escrever programas spark que rodam de forma rápida e confiável. As várias formas em que as transferências de dados podem ser minimizadas ao trabalhar com o Apache Spark são:
- Utilizar Variável de Broadcast- Variável de Broadcast aumenta a eficiência das junções entre RDDs pequenos e grandes.
- Usando Acumuladores – Acumuladores ajudam a atualizar os valores das variáveis em paralelo durante a execução.
- A maneira mais comum é evitar operações ByKey, repartições ou quaisquer outras operações que acionem embaralhamentos.
13) Por que há necessidade de variáveis de transmissão quando se trabalha com Apache Spark?
Essas são apenas variáveis lidas, apresentam cache in-memory em cada máquina. Quando se trabalha com Spark, o uso de variáveis de transmissão elimina a necessidade de enviar cópias de uma variável para cada tarefa, para que os dados possam ser processados mais rapidamente. As variáveis de broadcast ajudam a armazenar uma tabela de busca dentro da memória, o que aumenta a eficiência da recuperação quando comparado com uma busca RDD ().
14) É possível executar Spark e Mesos junto com Hadoop?
Yes, é possível executar Spark e Mesos com Hadoop lançando cada um deles como um serviço separado nas máquinas. Mesos atua como um agendador unificado que atribui tarefas a Spark ou Hadoop.
15) O que é gráfico de linhagem?
Os RDDs em Spark, dependem de um ou mais RDDs. A representação das dependências entre os RDDs é conhecida como gráfico de linhagem. As informações do gráfico de linhagem são usadas para calcular cada RDD sob demanda, de modo que sempre que uma parte do RDD persistente for perdida, os dados que forem perdidos podem ser recuperados usando as informações do gráfico de linhagem.
16) Como você pode acionar as limpezas automáticas no Spark para lidar com metadados acumulados?
Você pode acionar as limpezas definindo o parâmetro ‘spark’.cleaner.ttl’ ou dividindo os trabalhos de longa duração em diferentes lotes e escrevendo os resultados intermediários no disco.
17) Explique sobre as principais bibliotecas que constituem o Ecossistema Spark
- Spark MLib- Biblioteca de aprendizagem da máquina em Spark para algoritmos de aprendizagem comumente usados como clustering, regressão, classificação, etc.
- Spark GraphX – Spark API para cálculos paralelos de gráficos com operadores básicos como joinVertices, subgraph, aggregateMessages, etc.
- Spark SQL – Ajuda a executar SQL como consultas de dados Spark usando ferramentas de visualização padrão ou BI.
18) Quais são os benefícios de usar Spark com Apache Mesos?
Pagamento escalável entre várias instâncias Spark e particionamento dinâmico entre Spark e outros grandes frameworks de dados.
19) Qual é o significado da operação da janela deslizante?
Sliding Window controla a transmissão de pacotes de dados entre várias redes de computadores. A biblioteca Spark Streaming fornece cálculos em janelas onde as transformações nos RDDs são aplicadas sobre uma janela deslizante de dados. Sempre que a janela desliza, os RDDs que estão dentro de uma determinada janela são combinados e operados para produzir novos RDDs do DStream com janela.
20) O que é um DStream?
Discretized Stream é uma sequência de Bases de Dados Distribuídas Resilientes que representam um fluxo de dados. Os DStreams podem ser criados a partir de várias fontes como Apache Kafka, HDFS, e Apache Flume. Os DStreams têm duas operações –
- Transformações que produzem um novo DStream.
- Operações de saída que escrevem dados para um sistema externo.
21) Ao executar aplicações Spark, é necessário instalar Spark em todos os nós do cluster YARN?
Spark não precisa ser instalado ao executar um trabalho sob YARN ou Mesos porque Spark pode executar em cima de clusters YARN ou Mesos sem afetar qualquer alteração no cluster.
22) O que é o framework Catalyst?
Catalyst framework é um novo framework de otimização presente no Spark SQL. Ele permite Spark transformar automaticamente consultas SQL adicionando novas otimizações para construir um sistema de processamento mais rápido.
23) Diga algumas empresas que usam Apache Spark na produção.
Pinterest, Conviva, Shopify, Open Table
24) Qual spark library permite o compartilhamento confiável de arquivos na velocidade da memória através de diferentes frameworks de cluster?
Tachyon
Work On Interesting Data Science Projects using Spark to build an impressive project portfolio!
25) Porque é usado o BlinkDB?
BlinkDB é um mecanismo de consulta para executar consultas SQL interactivas em grandes volumes de dados e torna os resultados da consulta marcados com barras de erro significativas. BlinkDB ajuda os usuários a equilibrar a ‘precisão da consulta’ com o tempo de resposta.
26) Como você pode comparar Hadoop e Spark em termos de facilidade de uso?
Hadoop MapReduce requer programação em Java, o que é difícil, embora Pig and Hive o torne consideravelmente mais fácil. A aprendizagem da sintaxe do Porco e da Colmeia leva o seu tempo. Spark tem APIs interativas para diferentes linguagens como Java, Python ou Scala e também inclui Shark i.e. Spark SQL para os amantes de SQL – tornando comparativamente mais fácil de usar do que Hadoop.
27) Quais são os erros comuns que os desenvolvedores cometem quando executam aplicações Spark?
Desenvolvedores frequentemente cometem o erro def-
- Atingir o serviço web várias vezes usando múltiplos clusters.
- Executar tudo no nó local ao invés de distribuí-lo.
Desenvolvedores precisam ter cuidado com isso, pois Spark faz uso de memória para processamento.
28) Qual é a vantagem de um arquivo Parquet?
O arquivo Parquet é um arquivo em formato de coluna que ajuda –
- Operações de E/S limitadas
- Consume menos espaço
- Vai buscar apenas as colunas necessárias.
29) Quais são as várias fontes de dados disponíveis no SparkSQL?
- Arquivo de parquet
- JSON Datasets
- Tabelas de colméias
30) Como a Spark usa o Hadoop?
Spark tem seu próprio cálculo de gerenciamento de cluster e usa principalmente o Hadoop para armazenamento.
Para a lista completa de grandes projetos de dados resolvidos – CLIQUE AQUI
31) Quais são as principais características do Apache Spark que você gosta?
- Spark fornece opções analíticas avançadas como algoritmos gráficos, aprendizagem de máquina, streaming de dados, etc
- Tem APIs incorporadas em múltiplas linguagens como Java, Scala, Python e R
- Tem bons ganhos de performance, pois ajuda a executar uma aplicação no cluster Hadoop dez vezes mais rápido em disco e 100 vezes mais rápido em memória.
32) O que você entende por Par RDD?
Operações especiais podem ser realizadas em RDDs em Spark usando pares chave/valor e tais RDDs são chamados de Par RDDs. Os RDDs de Par permitem aos utilizadores acederem a cada chave em paralelo. Eles têm um método reduceByKey () que coleta dados baseados em cada chave e um método join () que combina diferentes RDDs juntos, baseado nos elementos que possuem a mesma chave.
33) Qual você escolherá para um projeto -Hadoop MapReduce ou Apache Spark?
A resposta a esta pergunta depende do cenário do projeto em questão – pois é conhecido que Spark faz uso de memória em vez de rede e I/O de disco. Entretanto, Spark usa grande quantidade de RAM e requer máquina dedicada para produzir resultados efetivos. Então a decisão de usar Hadoop ou Spark varia dinamicamente com os requisitos do projeto e orçamento da organização.
34) Explique sobre os diferentes tipos de transformações no DStreams?
- Stateless Transformations- O processamento do lote não depende da saída do lote anterior. Exemplos – mapa (), reduceByKey (), filtro ().
- Stateful Transformations- O processamento do lote depende dos resultados intermediários do lote anterior. Exemplos – Transformações que dependem de janelas deslizantes.
35) Explique sobre os casos de uso popular do Apache Spark
Apache Spark é usado principalmente para
- Aprendizagem iterativa da máquina.
- Análise e processamento de dados interativo.
- Processamento em fluxo
- Processamento de dados do sensor
36) O Apache Spark é um bom ajuste para a aprendizagem do Reforço?
Não. Apache Spark funciona bem apenas para algoritmos simples de aprendizagem de máquinas como clustering, regressão, classificação.
37) O que é Spark Core?
Tem todas as funcionalidades básicas do Spark, como – gestão de memória, recuperação de falhas, interacção com sistemas de armazenamento, tarefas de agendamento, etc.
38) Como pode remover os elementos com uma chave presente em qualquer outro RDD?
Utilizar a função subtractByKey ()
39) Qual é a diferença entre persist() e cache()
persist () permite ao utilizador especificar o nível de armazenamento enquanto que o cache () utiliza o nível de armazenamento padrão.
40) Quais são os vários níveis de persistência no Apache Spark?
Apache Spark persiste automaticamente os dados intermediários de várias operações de embaralhamento, no entanto é frequentemente sugerido que os usuários chamem o método persist () no RDD caso eles planejem reutilizá-lo. Spark tem vários níveis de persistência para armazenar os RDDs no disco ou na memória ou como uma combinação de ambos com diferentes níveis de replicação.
Os vários níveis de armazenamento/persistência na Spark são –
- MEMORY_ONLY
- MEMORY_ONLY_SER
- MEMORY_AND_DISK
- MEMORY_AND_DISK_SER, DISK_ONLY
- OFF_HEAP
41) Como a Spark lida com a monitorização e registo em modo autónomo?
Spark tem uma interface web para monitorar o cluster em modo autônomo que mostra as estatísticas do cluster e do trabalho. A saída de log para cada trabalho é escrita no diretório de trabalho dos nós escravos.
42) O Apache Spark fornece um ponto de verificação?
Gráficos de linhagem são sempre úteis para recuperar RDDs de uma falha, mas isso geralmente é demorado se os RDDs tiverem cadeias de linhagem longas. O Spark tem uma API para apontar a verificação, ou seja, uma flag REPLICATE para persistir. No entanto, a decisão sobre quais dados para ponto de verificação – é decidida pelo usuário. Checkpoints são úteis quando os gráficos de linhagem são longos e têm amplas dependências.
43) Como você pode lançar spark jobs dentro do Hadoop MapReduce?
Usar SIMR (Spark in MapReduce) usuários podem executar qualquer spark job dentro do MapReduce sem requerer quaisquer direitos de administrador.
44) Como Spark usa Akka?
Spark usa Akka basicamente para agendamento. Todos os trabalhadores solicitam uma tarefa para dominar após o registro. O mestre apenas atribui a tarefa. Aqui Spark usa Akka para mensagens entre os workers e masters.
45) Como você pode alcançar alta disponibilidade no Apache Spark?
- Implementar recuperação de nó único com sistema de arquivo local
- Usar StandBy Masters com Apache ZooKeeper.
46) Hadoop usa replicação para alcançar tolerância a falhas. Como isso é conseguido no Apache Spark?
Modelo de armazenamento de dados no Apache Spark é baseado em RDDs. Os RDDs ajudam a alcançar a tolerância a falhas através da linhagem. RDD sempre tem a informação de como construir a partir de outros conjuntos de dados. Se qualquer partição de um RDD for perdida devido a falha, a linhagem ajuda a construir apenas aquela partição perdida em particular.
47) Explique sobre os componentes principais de uma aplicação Spark distribuída.
- Condutor- O processo que executa o método principal () do programa para criar RDDs e executar transformações e ações neles.
- Executor – Os processos do trabalhador que executam as tarefas individuais de um trabalho Spark.
- Cluster Manager-A pluggable component in Spark, para iniciar Executadores e Drivers. O gerenciador de cluster permite que Spark execute em cima de outros gerentes externos como Apache Mesos ou YARN.
48) O que você entende por Lazy Evaluation?
Spark é intelectual na forma em que opera sobre os dados. Quando você diz ao Spark para operar em um dado conjunto de dados, ele escuta as instruções e faz uma nota, para que ele não se esqueça – mas ele não faz nada, a menos que lhe seja pedido o resultado final. Quando uma transformação como o mapa () é chamada em um RDD – a operação não é realizada imediatamente. As transformações em Centelha não são avaliadas até que você execute uma ação. Isso ajuda a otimizar o fluxo de trabalho geral de processamento de dados.
49) Definir um nó de operário.
Um nó que pode executar o código da aplicação Spark em um cluster pode ser chamado como um nó de operário. Um nó de operário pode ter mais de um operário que é configurado definindo a propriedade SPARK_ WORKER_INSTANCES no arquivo spark-env.sh. Apenas um worker é iniciado se a propriedade SPARK_ WORKER_INSTANCES não estiver definida.
50) O que você entende por SchemaRDD?
Um RDD que consiste em objetos de linha (envoltórios em torno de strings básicas ou arrays inteiros) com informações de esquema sobre o tipo de dados em cada coluna.
51) Quais são as desvantagens de usar Apache Spark sobre Hadoop MapReduce?
Apache spark não é bem dimensionado para trabalhos intensivos e consome um grande número de recursos do sistema. A capacidade in-memory do Apache Spark às vezes vem um grande bloqueio para o processamento eficiente de grandes dados. Além disso, Spark tem seu próprio sistema de gerenciamento de arquivos e, portanto, precisa ser integrado com outras plataformas de dados baseadas em nuvem ou apache hadoop.
52) É necessário instalar spark em todos os nós de um cluster YARN enquanto executa Apache Spark no YARN ?
Não , não é necessário porque o Apache Spark roda em cima do YARN.
53) O que você entende por Memória do Executor em uma aplicação Spark?
Todas as aplicações spark têm o mesmo tamanho fixo de pilha e número fixo de núcleos para um executor spark. O tamanho da pilha é o que é chamado de Spark executor memory que é controlado com a propriedade spark.executor.memory da bandeira -executor-memory. Cada aplicação spark terá um executor em cada nó de trabalhador. A memória do executor é basicamente uma medida de quanta memória do nó operário a aplicação utilizará.
54) O que o Spark Engine faz?
Spark engine programa, distribui e monitora a aplicação de dados através do cluster de spark.
55) O que torna o Apache Spark bom em cargas de trabalho de baixa latência como processamento gráfico e aprendizagem da máquina?
Apache Spark armazena dados na memória para construção e treinamento mais rápido do modelo. Os algoritmos de aprendizagem de máquina requerem múltiplas iterações para gerar um modelo ótimo resultante e de forma similar os algoritmos gráficos atravessam todos os nós e bordas. Estas cargas de trabalho de baixa latência que precisam de múltiplas iterações podem levar a um aumento de desempenho. Menos acesso ao disco e tráfego de rede controlado fazem uma enorme diferença quando há muitos dados a serem processados.
56) É necessário iniciar o Hadoop para executar qualquer aplicação Apache Spark ?
Iniciar o hadoop não é obrigatório para executar qualquer aplicação spark. Como não há armazenamento separado no Apache Spark, ele usa Hadoop HDFS mas não é obrigatório. Os dados podem ser armazenados no sistema de arquivos local, podem ser carregados a partir do sistema de arquivos local e processados.
57) Qual é o nível padrão de paralelismo no Apache Spark?
Se o usuário não especificar explicitamente, então o número de partições é considerado como nível padrão de paralelismo no Apache Spark.
58) Explique sobre o fluxo de trabalho comum de um programa Spark
- O passo mais importante em um programa Spark envolve a criação de RDD’s de entrada a partir de dados externos.
- Utilizar várias transformações de RDD como filter() para criar novos RDD’s transformados baseados na lógica de negócio.
- persist() quaisquer RDD’s intermediários que possam ter que ser reutilizados no futuro.
- Lançar várias ações de RDD() como first(), count() para iniciar o cálculo paralelo , que será então otimizado e executado pelo Spark.
59) Em um dado programa Spark, como você identificará se uma dada operação é Transformação ou Ação ?
Uma pode identificar a operação baseada no tipo de retorno –
i) A operação é uma ação, se o tipo de retorno for diferente de RDD.
ii) A operação é transformação, se o tipo de retorno for o mesmo que o RDD.
60) O que de acordo com você é um erro comum que os desenvolvedores do apache spark cometem quando usam spark ?
- Manutenção do tamanho requerido de blocos embaralhados.
- Desenvolvedor do spark frequentemente comete erros no gerenciamento de gráficos acíclicos direcionados (DAG’s.)
61) Suponha que exista um RDD chamado ProjectPrordd que contenha uma enorme lista de números. O seguinte código de faísca é escrito para calcular a média –
def ProjectProAvg(x, y):
retorno (x+y)/2.0;
avg = ProjectPrordd.reduce(ProjectProAvg);
O que está errado com o código acima e como você irá corrigi-lo ?
A função de média não é nem comutativa nem associativa. A melhor maneira de calcular a média é primeiro somá-la e depois dividi-la por contagem como mostrado abaixo –
def sum(x, y):
retorno x+y;
total =ProjectPrordd.reduce(sum);
avg = total / ProjectPrordd.count();
No entanto, o código acima pode levar a um transbordamento se o total se tornar grande. Então, a melhor maneira de calcular a média é dividir cada número por contagem e então somar como mostrado abaixo –
cnt = ProjectPrordd.count();
def divideByCnt(x):
retorna x/cnt;
myrdd1 = ProjectPrordd.map(divideByCnt);
avg = ProjectPrordd.reduce(soma);
Q. Digamos que eu tenho uma lista enorme de números em um arquivo em HDFS. Cada linha tem um número.E eu quero com
Spark SQL Interview Questions
1) Explique a diferença entre Spark SQL e Hive.
- Spark SQL é mais rápido que Hive.
- Any Hive query pode ser facilmente executada em Spark SQL mas vice-versa não é verdade.
- Spark SQL é uma biblioteca enquanto que Hive é um framework.
- Não é obrigatório criar uma metastore em Spark SQL mas é obrigatório criar uma metastore Hive.
- Spark SQL infere automaticamente o esquema enquanto que em Hive schema precisa de ser explicitamente declarado.
Spark Streaming Interview Questions
1) Nomear algumas fontes de onde o Spark Streaming pode processar dados em tempo real.
Apache Flume, Apache Kafka, Amazon Kinesis
2) Nomear algumas empresas que já estão a utilizar Spark Streaming.
Uber, Netflix, Pinterest.
3) Qual é a camada inferior de abstração no Spark Streaming API ?
DStream.
4) O que você entende por receptores no Spark Streaming ?
Receptores são entidades especiais no Spark Streaming que consomem dados de várias fontes de dados e os movem para o Apache Spark. Os receptores são geralmente criados por contextos de streaming como tarefas longas em vários executores e programados para operar de uma maneira redonda e robusta com cada receptor tomando um único núcleo.
Convidamos a grande comunidade de dados a compartilhar as perguntas e respostas mais freqüentes do Apache Spark Interview, nos comentários abaixo – para facilitar grandes entrevistas de trabalho de dados para todos os profissionais de análise prospectivos.
5) Como você irá calcular o número de executores necessários para fazer processamento em tempo real usando o Apache Spark? Que fatores precisam ser considerados para decidir o número de nós para processamento em tempo real?
O número de nós pode ser decidido através do benchmarking do hardware e considerando múltiplos fatores, tais como o throughput ótimo (velocidade da rede), uso de memória, os frameworks de execução sendo usados (YARN, Standalone ou Mesos) e considerando os outros trabalhos que estão rodando dentro desses frameworks de execução junto com spark.
6) Qual é a diferença entre Spark Transform no DStream e no mapa ?
funçãotranform em spark streaming permite aos desenvolvedores usar as transformações Apache Spark nos RDD’s subjacentes para o stream. função map no hadoop é usada para um elemento a elemento a transformar e pode ser implementada usando transform.idealmente , map trabalha nos elementos do Dstream e transform permite aos desenvolvedores trabalhar com RDD’s do DStream. map é uma transformação elementar enquanto transform é uma transformação RDD.
Check Out Top Scala Interview Questions for Spark Developers.