我正在从 redis 服务器读取句子并计算每个单词的出现次数。现在我想根据计数计算前 10 个单词。我有一个 Spout 可以从 Redis 服务器读取句子,一个 Bolt 可以将句子分解成单词,还有一个 Bolt 可以对单词进行计数。
根据计数找到前 10 个单词的方法应该是什么?
最佳答案
假设你必须在最后 X 分钟内执行 top to,每隔 X 分钟用 tick 元组配置你的 bolt,直到继续计算 bolt 中的单词。遇到滴答元组发出前十项时,您可以将计数器保存在内存 TreeMap 中(取决于用例和数据大小)
现在假设您必须在 Redis 数据结构中维护大数据量的前 10 名,并根据您的需要每 Y 秒后发出前 10 名。
有关滴答元组的信息,请参阅 Michael 的博客@ http://www.michael-noll.com/blog/2013/01/18/implementing-real-time-trending-topics-in-storm/
关于redis - 在 Storm 中计算前 10 个结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17160319/