我有一个与实际字典非常相似的字典文件。也就是说,它为每个单词存储单词和索引。单词的数量非常大,比方说200万字。我有另一个文件存储一堆文件的顶部单词。也就是说,第二文件中的每一行都有一个键,该键引用一个文档(文档名称),后跟10个值,这些值是该文档中单词的索引。我想有效地合并这两个文件,以便使用Hadoop获取每个文档的顶部单词。
一个天真的解决方案是输出单词的索引作为映射器中的键,值可以是文档名称或实际单词。但是因为有很多单词,减速器的数量将是巨大的,解决方案可能无法扩展。
另一种解决方案是在mapper中缓冲字典文件并在映射器中进行连接,但是在mapper端需要大量内存。有没有更好的解决方案呢(不用担心内存问题?)