2016-10-03 8 views
0

問題つ以上のキー

に地図-減らす我々はレコードを持って、私ここで、i = 0、...、N R を言います。 nは大きくてもよい(数十億で)。

すべてのレコードは、いくつかのキーk ij(j = 0、...、m)を持っています。 mが小さい(20言う)

我々は言う、R P = R Q、もしK P0 = K Q0、K P1 = K Q1、...、又は少なくとも一つのその鍵が等しい場合、K PM = K QMある

は、レコードは、同じです。そのようなレコードセットを見つけ、それらのセットに固有のIDを生成する必要があります。

アプローチ

実行メートルの各ジョブが一つのキーに減少したジョブを、マップ減らします。

したがって、ジョブのI、マッパ発する(R Pは、 IをK)と減速は、({R 、...、R P}、K iは

を取得

すべてのm個のジョブの最後に、等しいキーを持つレコードのセットがあります。

我々未満でk Nまだ数百万にすることができ、Lは少数であることを期待S K = {R リットル}

(5000から2の間と言う)

最終結果を得るには、少なくとも1つのメンバーが共通する上記のセットをマージする必要があります。

I以下の質問があります。

  1. どのように効率的にこれらのセットをマージするの?
  2. また、この問題を解決する他の方法はありますか?
+0

ハッシングについてはどうですか?Key1-10? –

+0

ところで、私はマルチステップ・マップ・リダクションを実行しても機能しないことに気付きました。 @Aush @ k1-10をハッシュするとどういう意味ですか? 1つの「スーパーキー」がありますか?それはどちらもうまくいかない。スーパーキーの平等は、どちらかのキーの平等を意味しません。 –

+0

私はより明確にするために私の質問を編集しました。 –

答えて

0

これはConnectedComponentの問題であり、よく知られている解決策であることが分かりました。

関連する問題