免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 9070 | 回复: 4
打印 上一主题 下一主题

大数据去重复,求速度 [复制链接]

论坛徽章:
1
午马
日期:2013-11-25 16:01:44
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-05-21 21:49 |显示全部楼层 |倒序浏览
本帖最后由 gongyonghui2 于 2014-05-22 14:28 编辑

数据有1亿5千万行3列
每行均是数字,形如


数据重复是指:任意两行,每一行的三个数排序后,这两行一样,那么就是重复。
求perl能达到去重复效率最高的方法。
数据链接:http://pan.baidu.com/s/1dDekRLJ

论坛徽章:
1
午马
日期:2013-11-25 16:01:44
2 [报告]
发表于 2014-05-22 10:42 |显示全部楼层
回复 5# MMMIX


    用的是sort {$a<=>$b} 后join成字串,然后再用hash去重复,但是sort的时间跑了大概20分钟还没有sort完,内存不够了。

论坛徽章:
1
午马
日期:2013-11-25 16:01:44
3 [报告]
发表于 2014-05-22 13:46 |显示全部楼层
本帖最后由 gongyonghui2 于 2014-05-22 13:54 编辑

回复 8# MMMIX
  1. open IN,"tt1.txt";
  2. open OU,">","result.txt";
  3. my %hash=();

  4. while(<IN>){
  5.         chomp;
  6.         my $tmp=join "\t",sort {$a<=>$b} split /\t/;       
  7.         $hash{$tmp}++;
  8. }
  9. print "sortDone\n";
  10. while(my ($cc)=each %hash){
  11.         print OUT $cc,"\n";       
  12. }
复制代码
机器6G内存,2楼代码原理一样,也是用hash去重,命令行运行出错

论坛徽章:
1
午马
日期:2013-11-25 16:01:44
4 [报告]
发表于 2014-05-23 19:40 |显示全部楼层
回复 17# timespace


    非常感谢

论坛徽章:
1
午马
日期:2013-11-25 16:01:44
5 [报告]
发表于 2014-05-23 19:48 |显示全部楼层
谢谢大家,此贴收尾
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP