2012-01-16 10 views
2

私はreduce conceptをマップするのが初めてで、次の問題がそれを使って解決できるかどうか疑問に思う。Map時系列解析のためのReduce

は、私たちは、このような形式でデータのログを持っている:

私たちのような異なる時間メトリック、計算することができるようにしたい
TransID  Date   Operation DocumentID User 
1   01/01/2010  Open  aaa   Anne 
2   01/11/2010  Close  aaa   Anne 
3   01/12/2010  Open  bbb   Mary 
4   01/12/2010  Close  bbb   Mary 

  • どのくらいの時間がオープンとの間を通過しますオペレーションをグローバルに終了させる?または
  • 各ユーザーごとにオープン平均とクローズ平均の間にどのくらいの時間がかかりますか?

map-reduceでこれを達成する簡単な方法はありますか?私たちはMongoDBやHadoopを検討しています。

データ量は膨大なものになります。ありがとう!

+0

これは確かに可能です。 –

答えて

1

ここでは、マップフェーズでデータを「平坦化」し、それを還元剤に送信して計算する必要があります。したがって、あなたの鍵はDocumentID(あなたのユースケースに応じてUserかもしれません)で、値は時間と操作です。あなたのレデューサーでは、上記の行はキー内でループすることができる行に過ぎません。ここには非常に似た何かの例がありますhttp://allthingshadoop.com/2010/12/16/simple-hadoop-streaming-tutorial-using-joins-and-keys-with-python/

関連する問題