Accéder au contenu principal Passer au contenu complémentaire

Créer le programme MapReduce

Availability-noteDéprécié·e

Procédure

  1. Double-cliquez sur le tJavaMR pour ouvrir sa vue Component.
  2. Sous la table mrKeyStruct, cliquez une fois sur le bouton pour ajouter une ligne.
  3. Renommez cette ligne word_mr. C'est la partie clé de la paire clé/valeur utilisée dans le programme Map/Reduce créé. Dans la méthode Map, vous devez écrire mrKey.word_mr pour représenter les clés à écrire en sortie dans un reducer.
  4. Sous la table mrValueStruct, cliquez une fois sur le bouton pour ajouter une ligne.
  5. Renommez cette ligne count_mr. C'est la partie valeur de la paire clé/valeur mentionnée précédemment. Dans la méthode Map, vous devez écrire mrValue.count_mr pour représenter les valeurs à écrire en sortie dans un reducer.
  6. Cliquez sur le bouton à côté du champ Edit schema pour ouvrir l'éditeur du schéma.
  7. Du côté du schéma du tJavaMR, cliquez sur le bouton pour ajouter deux colonnes et nommez-les word_output et count_output, respectivement. Cela permet de définir la structure des données générées en sortie.
  8. Dans la colonne Type, sélectionnez Integer pour count_output.
  9. Dans le champ éditable Map code, modifiez le corps de la méthode Map. Dans cet exemple, le code est comme suit :
    
                      String line = value.record;
    java.util.StringTokenizer tokenizer = new java.util.StringTokenizer(line);
    while(tokenizer.hasMoreTokens()) {
       mrKey.word_mr = tokenizer.nextToken().toUpperCase();
       mrValue.count_mr = 1;
       output.collect(mrKey, mrValue);
    }
                   
    Cette méthode est utilisée pour fractionner les données d'entrée en mots, mettre en majuscules chaque mot, puis créer et écrire en sortie des paires de clés et de valeurs comme (HELLO, 1) et (WORLD, 1) dans le reducer.
    Notez que lors de l'exécution, ces paires sont automatiquement mélangées et triées pour prendre la forme (key, list of values) avant d'être traitées par la méthode Reduce.
  10. Dans le champ éditable Reduce code, modifiez le corps de la méthode Reduce. Dans cet exemple, le code est comme suit :
    
                      int count = 0;
    while(values.hasNext()){
      mrValueStruct value = values.next();
      count += value.count_mr; 
    }    
    outputRow.word_output = key.word_mr;
    outputRow.count_output = count;
    output.collect(NULL, outputRow);
                   
    Cette méthode est utilisée pour calculer la somme des valeurs de la liste dans chaque paire (key, list of values) et mapper les résultats dans les colonnes du schéma de sortie.

Cette page vous a-t-elle aidé ?

Si vous rencontrez des problèmes sur cette page ou dans son contenu – une faute de frappe, une étape manquante ou une erreur technique – faites-le-nous savoir.