Questão de Programação — Conceitos básicos de programação — FGV 2024
Programação›Conceitos 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, é:
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:
Splitting (divisão): o arquivo de entrada é dividido em blocos menores (splits) para processamento paralelo.
Mapping (mapeamento): cada bloco é processado por uma função Map que emite pares chave-valor no formato (palavra, 1).
Shuffling (embaralhamento): o framework agrupa todos os valores associados a cada chave (palavra), ordenando e transferindo os dados para os nós Reducer.
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).
1Splitting (divisão em blocos)
2Mapping (emite palavra,1)
3Shuffling (agrupa por chave)
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.