加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

perl – 打印10GB文件的独特行

发布时间:2020-12-15 21:41:24 所属栏目:大数据 来源:网络整理
导读:我有一个10GB的文件,有2亿行.我需要得到这个文件的唯一行. 我的代码: while() { chomp; $tmp{$_}=1; } #print... 我只有2GB内存如何解决这个问题? 解决方法 当我评论David的答案时,数据库是要走的路,但是一个好的可能是 DBM::Deep ,因为它的纯Perl,易于安
我有一个10GB的文件,有2亿行.我需要得到这个文件的唯一行.

我的代码:

while(<>) {
     chomp;
     $tmp{$_}=1;
 }
 #print...

我只有2GB内存如何解决这个问题?

解决方法

当我评论David的答案时,数据库是要走的路,但是一个好的可能是 DBM::Deep,因为它的纯Perl,易于安装和使用;它本质上是一个绑定到文件的Perl哈希.
use DBM::Deep;
tie my %lines,'DBM::Deep','data.db';

while(<>) {
    chomp;
    $lines{$_}=1;
}

这基本上是你已经拥有的,但哈希现在是一个与文件(这里是data.db)绑定的数据库,而不是保存在内存中.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读