当前位置: 首页 > 面试题库 >

给定内存限制,对具有大量数据的文件进行排序

鞠嘉誉
2023-03-14
问题内容

要点:

  • 我们一天可以同时处理数千个平面文件。
  • 内存限制是一个主要问题。
  • 我们为每个文件进程使用线程。
  • 我们不按列排序。文件中的每一行(记录)都被视为一列。

不能做:

  • 我们不能使用Unix / Linux的sort命令。
  • 无论多么轻巧,我们都无法使用任何数据库系统

现在,我们不能只加载集合中的所有内容并使用排序机制。它将耗尽所有内存,程序将得到堆错误。

在这种情况下,您将如何对文件中的记录/行进行排序?


问题答案:

看起来您正在寻找的是 外部排序。

基本上,您首先对一小部分数据进行排序,然后将其写回磁盘,然后遍历这些数据以对所有数据进行排序。



 类似资料:
  • 我给出了如下样本数据收集。我正在尝试在最新的第一订单中获取结果,因此我使用了分页并分别对其进行了排序。但是当我尝试对大量数据进行排序时,例如 API 命中限制 100 .然后它抛给我错误 "消息":":: 排序导致的查找命令:: 执行器错误超过内存限制33554432字节,但未选择加入外部排序。中止操作。通过允许磁盘使用:true选择加入。" }

  • 我正在使用AngularFire2成功将图像上传到Firebase Storage。 我有以下上传代码。 我想解决几个问题。 如何设置文件大小限制?这意味着我希望用户能够上传小于10mb的文件。 如何限制文件编号?这意味着我希望一个用户只能上传3个文件。 如果没有firebase服务器规模的解决方案,请推荐一些客户端规模的解决方案。 谢谢

  • 本文向大家介绍Python利用多进程将大量数据放入有限内存的教程,包括了Python利用多进程将大量数据放入有限内存的教程的使用技巧和注意事项,需要的朋友参考一下 简介 这是一篇有关如何将大量的数据放入有限的内存中的简略教程。 与客户工作时,有时会发现他们的数据库实际上只是一个csv或Excel文件仓库,你只能将就着用,经常需要在不更新他们的数据仓库的情况下完成工作。大部分情况下,如果将这些文件存

  • 本文向大家介绍cgroup限制mongodb进程内存大小,包括了cgroup限制mongodb进程内存大小的使用技巧和注意事项,需要的朋友参考一下 以限制mongodb的内存大小为例。 通过cgroup限制后,当内存达到限额,进程会被kill。 数据查询脚本: 数据插入脚本:

  • 问题内容: 我试图将800GB的文件上传到elasticsearch,但是我不断收到内存错误,告诉我数据二进制文件内存不足。我的系统上有64GB的RAM和3TB的存储空间 我想知道配置文件中是否有设置可以增加内存量,以便我可以上传到他的文件 谢谢 问题答案: 800GB一次发送就足够了,ES必须将所有内容都放入内存中才能进行处理,因此对于您拥有的内存量来说可能太大了。 解决此问题的一种方法是将您的

  • 我使用java数组列表按大小对目录中的文件进行排序&&如何在java中按元素大小对ArrayList进行排序? 我的问题是实现比较器的最佳方式是什么,这样排序会更快?我被告知100K文件的排序应该在几秒钟内完成,而不是在几分钟内,因为文件的大小是长的。是否有更好的方法来实现比较器? null 可以观察到,在20K之后,排序需要几分钟。我有什么建议可以降低排序时间吗? 我还查阅了https://do