0

Hadoop を学ぶ試みの一環として、twitter ストリーミング API からの大量のツイートを使用するプロジェクトに取り組んでいます。約 2,000 万のツイートのうち、N 人の最もアクティブなユーザーのリストを生成しました。これらのユーザーは、すべてのツイートのテキストに基づいてクラスター化を試みたいと考えています。

数千のユーザー名のリストがあり、各ユーザーのすべてのツイートのコンテンツを連結し、最終的に各ユーザーの単語数ベクトルを生成したいと考えています。

ただし、連結を達成する方法がわかりません。ツイートの各行を取り込んで、「このツイートが関心のあるユーザーからのものである場合は、キーのユーザー名と値の tweetText でマップし、それ以外の場合は無視する」というマッパーを作成できるようにしたいと考えています。そうすれば、リデューサーが私が望むようにツイートを連結するのは簡単です。

私の問題は、関心のあるユーザーのこの膨大なリストについてマッパーにどのように伝えるかということです。マッパーがすべてのユーザーとハッシュテーブルを持つことができればいいように思えますが、それが可能かどうかはわかりません。

これを達成する良い方法はありますか、それとも問題が Map/Reduce に適していないだけですか?

4

1 に答える 1

1

ああ、気にしないでください。しばらく考えていたのですが、ここに書いてみて、どうしたらいいのだろうと思いました。X 個のツイートを持つすべてのユーザーのリストを作成し、データをもう一度調べてツイートを見つけようとする代わりに、すべてを一度に行うことができます。

現在、[username,1] をマッピングしてから、reducer ですべての 1 を合計してツイート数を生成しています。次に、X ツイートを超えるすべてのユーザーのツイートを見つけようとします。

一度にすべてを行うには、[username,completeTweet] をマップし、リデューサーを連結して、X 個を超えるツイートを持つユーザーのみのデータを出力し、他のユーザーを無視する必要があります。

于 2012-06-19T18:47:45.970 に答える