メイン コンテンツをスキップする 補完的コンテンツへスキップ

MapReduceプログラムの作成

Availability-note非推奨

手順

  1. tJavaMRをダブルクリックして、その[Component] (コンポーネント)ビューを開きます。
  2. mrKeyStructテーブルでボタンを1回クリックして1行追加します。
  3. その行の名前をword_mrに変更します。これは、作成するMap/Reduceプログラムによって使用するキー/値のペアのキーの部分です。Mapメソッドでは、Reducerに出力するキーを表すmrKey.word_mrを書き込む必要があります。
  4. mrValueStructテーブルでボタンを1回クリックして1行追加します。
  5. その行の名前をcount_mrに変更します。これは、上記キー/値のペアの値の部分です。Mapメソッドでは、Reducerに出力する値を表すmrValue.count_mrを書き込む必要があります。
  6. [Edit schema] (スキーマを編集)の横のボタンをクリックし、スキーマエディターを開きます。
  7. tJavaMRのスキーマ側でボタンをクリックして2つのカラムを追加し、それぞれにword_outputおよびcount_outputという名前を付けます。これにより、出力するデータの構造が定義されます。
  8. [Type] (タイプ)カラムで、count_output[Integer] (整数)を選択します。
  9. [Map code] (Mapコード)編集フィールドで、MapメソッドのBodyを編集します。このサンプルでは、コードは以下のとおりです。
    
                      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);
    }
                   
    このメソッドは、入力データを単語に分割し、各語を大文字に変更し、(HELLO, 1)および(WORLD, 1)などのキー/値のペアを作成し、Reducerに出力するために使用します。
    ランタイムには、これらのペアは、Reduceメソッドによって処理される前に、自動的にシャッフリングされ、ソートされて、(key, list of values)の形式を取ります。
  10. [Reduce code] (Reduceコード)編集フィールドで、ReduceメソッドのBodyを編集します。このサンプルでは、コードは以下のとおりです。
    
                      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);
                   
    このReduceメソッドは、各(key, list of values)ペア内のリストの値を合計し、結果を出力スキーマのカラムにマップするために使用されます。

このページは役に立ちましたか?

このページまたはコンテンツにタイポ、ステップの省略、技術的エラーなどの問題が見つかった場合はお知らせください。