1
9hills 2014-03-09 16:02:02 +08:00
上千万行去重用sort的效率很低,而且做了额外操作,因为你只是要去重,而不是排序
用awk数组来实现很简单很快,而且内存占用相当于hash表 cat 一堆文件 | awk '{ if (!seen[$0]++) { print $0; } }' |
2
9hills 2014-03-09 16:07:28 +08:00
awk的这种方法的缺陷是内存占用,大约5000w条去重后的数据,计算过程估算占几个G
但是肯定比sort占的少,上次有同事在机器上上千万行sort,把机器内存打爆了 |
4
alexapollo 2014-03-09 16:50:52 +08:00
map(hash_insert, row)
reduce(hash_insert, row) |
5
ooh OP @alexapollo 弱弱的问一下,这是怎么用的?
|