我有數據:與大量數據的哈希效率
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左右),但它似乎採取年齡來處理我的真實數據(ARO和100G)。有什麼方法可以優化我的代碼嗎?
感謝任何建議提前!
聽起來很適合MapReduce。你也可以考慮使用線程。 –
定義「年齡」。這些數據來自哪裏?如果它來自硬盤,無論您正在做什麼處理,100GB將需要很多分鐘才能運行。 –
@OliCharlesworth它來自硬盤.. – Sam