セミコロンで区切られたレコードを含む 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: エッジは無向です。