1

私の優等プロジェクトでは、大学の生命科学部門内の質量分析計 (MS) によって生成された非常に大量のデータを処理する方法を研究しています。

MapReduce Design Patterns & Hadoop: The Definitive Guide を読んでいて、持っているデータを特定の map & reduce パターンに接続しようとしています。

最初のステップは、各曲線の加重ピークを見つけることです。最大/最小、平均などの情報を使用して、6 または 7 ポイント (行) を 1 つのポイントに減らす計算を実行します。

  • データは、次のような最大 8 GB の CSV ファイルです。

    100312_EXP229_GFPIP_5,1,0.00056783449000000002,0,402.0745297608135,1135.039794921875,1,0,0,0,0,0
    
  • 各行は基本的にグラフ上の単一の点であり、X と Y の座標があります。

  • ポイントは、列の 1 つによって曲線にグループ化されます。そのため、レコードごとに、それがどの曲線に属しているかがわかります。

  • 各曲線のポイント数はさまざまで、通常は 4 ~ 8 ポイントです。

私の問題は、例のほとんどが行ごとに問題を処理しているように見えることです。たとえば、Word Count です。一度に N 行を処理する必要がありますが、これがこれを解決する正しい方法かどうかはわかりません。

ありがとう!

4

1 に答える 1

3

あなたの場合、ファイルを行ごとに処理<curve, point>し、マッパーで行ごとに出力するだけで十分です。レデューサーは、単一の曲線に属するすべてのポイント<curve, {point1, point2, ... }>を入力として受け取ります。したがって、レデューサーの曲線のポイントに基づいて最大/最小/平均を計算し<curve, max/min/avg>、最終結果として出力できます。

PS。各マッパーで入力ファイルの行を正確に処理するには、 NLineInputFormatNを使用できます。

于 2013-02-22T19:30:57.513 に答える