次のようなデータがあります。
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) を処理するには時間がかかるようです。コードを最適化する方法はありますか?
事前にアドバイスをいただければ幸いです。