Quelle est l'utilisation de la « clé K1 » dans le org.apache.hadoop.mapred.Mapper?

StackOverflow https://stackoverflow.com/questions/778497

  •  13-09-2019
  •  | 
  •  

Question

J'apprends Hadoop et je regardais l'exemple WordCount org.apache.hadoop.examples.WordCount . J'ai comprendre cet exemple, mais je peux voir que la variable touche LongWritable n'a pas été utilisé dans

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

ce qui est l'utilisation de cette variable? Quelqu'un pourrait-il me donner un exemple simple où il serait utilisé? Merci

Était-ce utile?

La solution

Lorsque la InputFormat est TextInputFormat, la clé est le offset octets depuis le début du fichier d'entrée actuel.

La valeur est tout simplement la ligne de texte à ce décalage.

Si SequenceFileInputFormat a été utilisé, la clé serait tout ce qui était bourré dans la position clé du « enregistrement. De même pour la valeur.

En bout de ligne est qu'ils types clé / valeur dépendent du type d'entrée (texte, fichier de séquence, etc.).

CKW

Autres conseils

Je peux me tromper (j'ai lu map / reduce tutoriels, mais ne l'ai pas utilisé pour des projets réels encore), mais je pense en général, il est l'identificateur d'entrée d'entrée; par exemple, tuple (nom de fichier, numéro de ligne). Dans ce cas particulier, il est censé être le numéro de ligne, et il est sans intérêt pour le nombre de mots. Il pourrait être utilisé si l'idée était, par exemple, le nombre de mots total sur ligne par ligne, sans fichier par fichier (ou plusieurs fichiers si la clé contenait cette information).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top