多个文本文件,单个上千万,数百万行,数十万,数万都有,考虑到数据合并后肯定有很多重复的,现在采用的是先sort>uniq>cat>sort>uniq
想问的是有更快捷的方法吗?
想问的是有更快捷的方法吗?
1
9hills Mar 9, 2014
上千万行去重用sort的效率很低,而且做了额外操作,因为你只是要去重,而不是排序
用awk数组来实现很简单很快,而且内存占用相当于hash表 cat 一堆文件 | awk '{ if (!seen[$0]++) { print $0; } }' |
2
9hills Mar 9, 2014
awk的这种方法的缺陷是内存占用,大约5000w条去重后的数据,计算过程估算占几个G
但是肯定比sort占的少,上次有同事在机器上上千万行sort,把机器内存打爆了 |
4
alexapollo Mar 9, 2014
map(hash_insert, row)
reduce(hash_insert, row) |
5
ooh OP @alexapollo 弱弱的问一下,这是怎么用的?
|