gpt4 book ai didi

perl - 如何有效地在两个级别上对大文件进行排序?

转载 作者:行者123 更新时间:2023-12-04 14:14:12 24 4
gpt4 key购买 nike

我有一个非常大的文件,超过 100GB(数十亿行),我想在内存有限的 unix 系统上尽可能快地进行两级排序。这将是大型 perl 脚本中的一个步骤,因此如果可能,我想使用 perl。

那么,我该怎么做呢?我的数据如下所示:

A    129
B 192
A 388
D 148
D 911
A 117

...但对于数十亿行。我需要先按字母排序,然后按数字排序。使用unix排序会更容易吗,比如......
sort -k1,2 myfile

或者我可以以某种方式在 perl 中完成这一切吗?我的系统将有类似 16GB 的内存,但文件大约为 100GB。

感谢您的任何建议!

最佳答案

UNIX sort实用程序可以通过在磁盘空间上创建临时工作文件来处理大数据的排序(例如,大于您的工作 16GB 的 RAM)。

所以,我建议简单地使用 UNIX sort为此,正如您所建议的,调用选项 -T tmp_dir ,并确保 tmp_dir有足够的磁盘空间来保存将在那里创建的所有临时工作文件。

顺便说一下,这在 previous SO question. 中讨论过。

关于perl - 如何有效地在两个级别上对大文件进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18192882/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com