Pregunta

Estoy aprendiendo Apache Hadoop y yo estaba mirando el ejemplo WordCount org.apache.hadoop.examples.WordCount . Tengo entender este ejemplo, sin embargo, puedo ver que la variable LongWritable clave no se utilizó en

(...)
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);
      }
    }
(...)

¿cuál es el uso de esta variable? Podría alguien dar un ejemplo sencillo en el que se utilizaría? Gracias

¿Fue útil?

Solución

Cuando el InputFormat es TextInputFormat, la clave está en los bytes de desplazamiento desde el principio del archivo de entrada actual.

El valor es simplemente la línea de texto en dicha posición.

Si se utilizó SequenceFileInputFormat, la clave sería todo lo que se metió en la posición clave de registro de antecedentes. Lo mismo para el valor.

El fondo es que los tipos de clave / valor dependen del tipo de entrada (texto, archivo de secuencia, etc.).

CKW

Otros consejos

Podría estar equivocado (He leído map / reduce tutoriales pero no lo he utilizado para proyectos reales aún), pero creo que en general es el identificador de entrada de entrada; por ejemplo, tupla (nombre de archivo, número de línea). En este caso particular, es supuestamente el número de línea, y es de ningún interés para el conteo de palabras. Podría ser utilizado si la idea era, por ejemplo, agregados palabra cuenta en, no por línea por archivo (o varios archivos si la clave no contenía esa información).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top