我有一个 2GB 的大文本文件,它有 5 列由制表符分隔。仅当 5 列中有 4 列匹配时,才会将行称为重复行。
现在,我正在做 dduping,首先将每个列加载到单独的 List 中,然后遍历列表,删除遇到的重复行并聚合。
问题:处理一个文件需要 20 多个小时。 我有 25 个这样的文件要处理。
任何人都可以分享他们的经验,他们将如何进行这种重复?
这个 dduping 将是一个丢弃的代码。所以,我一直在寻找一些快速/肮脏的解决方案,以尽快完成工作。
这是我的伪代码(大致)
Iterate over the rows
i=current_row_no.
Iterate over the row no. i+1 to last_row
if(col1 matches //find duplicate
&& col2 matches
&& col3 matches
&& col4 matches)
{
col5List.set(i,get col5); //aggregate
}
重复的例子
A 和 B 将重复 A=(1,1,1,1,1), B=(1,1,1,1,2), C=(2,1,1,1,1) 并且输出将be A=(1,1,1,1,1+2) C=(2,1,1,1,1) 【注意B已经被踢出】