我有一个用java写的作业问题。
我有一个GB大小的文本文件。阅读它,找出每个单词在该文件中出现的次数,并像<< word >> - <>一样显示它。
最好的情况是所有的单词都是一样的。所以我将显示没有出现单词,但考虑到最坏的情况,比如文件中出现的单词是唯一的。所以我需要显示所有出现次数为1的单词。
如何处理如此庞大的数据列表?我们对此有什么解决方案吗?
发布于 2013-03-04 20:51:09
理想情况下,用java编写Map-Reduce程序可能是解决此问题的最佳方法。下面是一个使用Map-Reduce范例的单词统计程序示例:Word Count Example
可以使用递归读/写操作来执行其他方法。创建一个Map (每个字母表一个map ),这样您可以随身携带26个map。根据起始字母表将单词放入适当的地图中。当达到特定的映射大小时,将该映射中的所有单词及其递增的计数写入到具有某些标识的文件中,以了解它包含哪些单词。一旦你从你的文件中读取了所有的字(以GB为单位),从磁盘中读回文件并计算字数。这将涉及一些IO,但我认为不会导致任何与内存相关的问题。
https://stackoverflow.com/questions/15201235
复制相似问题