Pergunta

Estou aprendendo Apache Hadoop e eu estava olhando para o exemplo WordCount org.apache.hadoop.examples.WordCount . Eu tenho entender este exemplo, entretanto eu posso ver que a variável chave LongWritable não foi usado em

(...)
public void map(LongWritable key, Text value, 
                    OutputCollector<Text, IntWritable> output, 
                    Reporter reporter) throws IOException {
      String line = value.toString();
      StringTokenizer itr = new StringTokenizer(line);
      while (itr.hasMoreTokens()) {
        word.set(itr.nextToken());
        output.collect(word, one);
      }
    }
(...)

O que é o uso desta variável? Alguém poderia me dar um exemplo simples onde seria usado? Graças

Foi útil?

Solução

Quando o InputFormat é TextInputFormat, a chave é o bytes deslocamento a partir do início do arquivo de entrada atual.

O valor é simplesmente a linha de texto nesse deslocamento.

Se foi utilizado SequenceFileInputFormat, a chave seria tudo o que foi recheado para a posição-chave do 'registro. O mesmo valor.

A linha inferior é que eles tipos de chave / valor são dependentes do tipo de entrada (texto, arquivo seqüência, etc).

ckw

Outras dicas

Eu posso estar errado (eu li mapa / reduzir tutoriais, mas não tê-lo usado para projetos de reais até o momento), mas acho que em geral é o identificador de entrada de entrada; por exemplo, tuple (nome do arquivo, o número da linha). Neste caso particular, é supostamente o número da linha, e é de nenhum interesse para contagem de palavras. Pode ser usado se a ideia era, digamos, contagem de palavras agregados em diante, não base por linha por arquivo (ou para vários arquivos se a chave continha essa informação).

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top