Créer le programme MapReduce - 7.1

Java custom code for Map Reduce

Version
7.1
Language
Français (France)
Product
Talend Big Data
Talend Big Data Platform
Talend Data Fabric
Talend Real-Time Big Data Platform
Module
Studio Talend
Content
Création et développement > Systèmes tiers > Composants Custom Code (Intégration) > Composant Custom Code Java pour Map Reduce
Gouvernance de données > Systèmes tiers > Composants Custom Code (Intégration) > Composant Custom Code Java pour Map Reduce
Qualité et préparation de données > Systèmes tiers > Composants Custom Code (Intégration) > Composant Custom Code Java pour Map Reduce

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.