我的一位朋友在接受采访时被问到以下问题。谁能告诉我如何解决它?
我们有一个相当大的日志文件,大约 5GB。日志文件的每一行都包含一个用户在我们网站上访问过的 URL。我们想要找出用户访问最多的 100 个 URL。怎么做?
如果我们有超过 10GB RAM,只需直接使用 hashmap 即可。
否则,使用哈希函数将其分成几个文件。然后处理每个文件并获得前 5 个文件。有了每个文件的“前 5 个”,就很容易获得总体前 5 个文件。
另一种解决方案可以使用任何外部排序方法对其进行排序。然后扫描一次文件以计算每次出现的次数。在此过程中,您不必跟踪计数。您可以放心地扔掉任何未进入前 5 名的东西。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)