Pular para o conteúdo principal

Questão de Programação — Conceitos básicos de programação — FGV 2024

ProgramaçãoConceitos básicos de programação
Código
fg086815
Banca
FGV
Órgão
MF
Ano
2024
Nível
Superior
Cargo
Auditor Federal de Finanças e Controle - Área de Tecnologia da Informação (Transformação Digital) - manhã
Um exemplo da aplicação do MapReduce bem conhecido é a contagem de palavras num arquivo de texto. A partir de um arquivo com linhas de texto, a tarefa é produzir a lista de palavras acompanhadas com a frequência que aparecem no texto.A sequência mais adequada de aplicação das fases para essa tarefa, além das fases de entrada e saída, é:
  1. AMapping – Reducing – Shuffling – Splitting.
  2. BSplitting – Counting – Mapping – Reducing.
  3. CSplitting – Mapping – Counting – Reducing.
  4. DSplitting – Mapping – Shuffling – Counting.
  5. ESplitting – Mapping – Shuffling – Reducing;
Revelar gabarito e comentário

GabaritoE — Splitting – Mapping – Shuffling – Reducing;

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

MapReduce – Fases do processamento de Word Count

Gabarito: letra E. A sequência correta das fases do MapReduce para a tarefa de contagem de palavras é: Splitting, Mapping, Shuffling e Reducing. Não há uma fase específica chamada 'Counting' – a contagem das palavras é realizada dentro da fase Reduce, que agrega os valores dos pares (palavra, 1) para gerar a frequência total.

O MapReduce é um modelo de programação paralela para processamento de grandes volumes de dados. Para contar palavras em um arquivo de texto, as etapas são:

  1. Splitting (divisão): o arquivo de entrada é dividido em blocos menores (splits) para processamento paralelo.

  2. Mapping (mapeamento): cada bloco é processado por uma função Map que emite pares chave-valor no formato (palavra, 1).

  3. Shuffling (embaralhamento): o framework agrupa todos os valores associados a cada chave (palavra), ordenando e transferindo os dados para os nós Reducer.

  4. Reducing (redução): a função Reduce recebe uma chave e uma lista de valores (ex.: (palavra, [1,1,1,...])), soma esses valores e gera a saída final (palavra, frequência total).

  1. 1Splitting (divisão em blocos)
  2. 2Mapping (emite palavra,1)
  3. 3Shuffling (agrupa por chave)
  4. 4Reducing (soma frequências)
LEVEL · soulevel.com.br

Alternativa A — ❌ Incorreta

Inicia com Mapping antes do Splitting e insere Reducing antes do Shuffling. O correto é dividir (Splitting) antes de mapear, e o embaralhamento (Shuffling) ocorre entre o Map e o Reduce.

Alternativa B — ❌ Incorreta

Inclui Counting como fase separada e posiciona Mapping após Counting. A contagem não é uma fase distinta; ela é parte do Reduce. Além disso, a ordem Splitting – Counting – Mapping – Reducing não faz sentido, pois o mapeamento ocorre antes da contagem.

Alternativa C — ❌ Incorreta

Apresenta Counting após Mapping. A contagem de palavras acontece durante o Reduce, não antes. A sequência Splitting – Mapping – Counting – Reducing pula a etapa de Shuffling, que é essencial para agrupar as ocorrências da mesma palavra.

Alternativa D — ❌ Incorreta

Embora as fases estejam em ordem razoável, inclui Counting no lugar de Reducing. A fase Shuffling já agrupou os dados; o passo final é o Reduce, que efetua a contagem (soma). Counting não é uma fase canônica do MapReduce.

Alternativa E — ✅ Correta ⟵ GABARITO

Exatamente a sequência padrão: Splitting – Mapping – Shuffling – Reducing. Não há fase 'Counting' extra; a redução já realiza a contagem.

NÃO CAIA NESSA!

A banca insere 'Counting' como fase autônoma em várias alternativas para confundir. Lembre-se: no MapReduce clássico, as fases são Split, Map, Shuffle, Reduce. A contagem é feita dentro do Reduce.

Gabarito: letra E

Link permanente: /questoes/fg086815