0

セミコロンで区切られたレコードを含む csv ファイルがあります。各行は 1 つのレコードです。各行には、グラフのエッジ情報が含まれています。これは、1 行が次のようになることを意味します。

ノード_X;ノード_Y;5

ノード x とノード y の間のエッジまたはリンクとして解釈され、重みは 5 です。私のマッパーはこの入力を取得します。ここで達成したいのは、ノードを使用して情報を集約することです。

次の例は、私のシナリオを示しています。

ノード_X;ノード_Y;5

ノード_X;ノード_Z;10

ノード_X;ノード_A;60

ノード Y;ノード A;20

次に、ノードによる結果は次のようになります。

ノード_X;75; ノード_Y;25; ノード_A;80

すべての個別のノードを収集し、他のノードとの重みの合計を重みとして与えたいと考えています。

私のマッパーでは、エッジ情報を読み取ることができます。

ノード_X;ノード_A;60

しかし、レデューサー用にこの行から 2 つのキーを作成するにはどうすればよいでしょうか? それは次のようなものでなければなりません

context.write(Node_X,60);

context.write(Node_A,60);

どうすればこれを達成できますか?

どうも!

PS: エッジは無向です。

4

1 に答える 1

3

それは次のようなものでなければなりません

context.write(Node_X,60);

context.write(Node_A,60);

尋ねる前にそれを試していないと仮定すると、それはうまくいくでしょう。

于 2012-06-08T12:51:47.407 に答える