我有这样的数据:
1 10
1 30
1 40
1 10
2 20
2 20
2 30
3 50
3 10
3 10
3 10
4 20
4 10
如果第一列的值匹配,我想将所有值相加,结果将是这样的,
1 90
2 70
3 80
4 30
我这里有我的代码,
while (<DATA>)
{
my ($a, $b) = split;
$hash{$a} += $b;
}
foreach $a (sort keys %hash)
{
$b = $hash{$a};
print OUT "$a $b\n";
}
它适用于样本数据(大约 100MB),但处理我的真实数据(大约 100G)似乎需要很长时间。有什么方法可以优化我的代码吗?
提前欣赏任何建议!