【发布时间】:2011-11-03 13:27:46
【问题描述】:
假设我们有一些文件,例如“A.txt”。我们知道有有一些重复的元素。 “A.txt”非常很大,比内存大十倍以上,大概 50GB 左右。有时,B 的大小大约等于 A 的大小,有时它会比 A 的大小小 很多倍。 让它有这样的结构:
a 1
b 2
c 445
a 1
我们需要获取文件“B.txt”,它不会有这样的重复。例如,应该是这样的:
a 1
b 2
c 445
我想到了复制A并执行B的算法,然后在B中获取第一个字符串,然后相互查找,如果找到相同的,则删除重复项。然后取第二个字符串等。
但我认为它方式太慢了。我可以使用什么?
A 是不是数据库!请不要使用 SQL。
对不起,没说,排序就OK了。
虽然可以排序,但是如果不能排序呢?
【问题讨论】:
-
我认为 CouchDB 是一个 NoSQL 解决方案。
-
你说'A.txt'不适合内存。您知道 A 的唯一元素(即 B 中的结果)是否适合内存?我认为他们不会,但如果他们这样做,就会大大简化问题。
-
B 也不适合内存。
-
您有 Microsoft Access 吗?即使使用您的 txt 文件,这也可以在 Access 中轻松完成。
-
我需要算法,而不是实现。
标签: algorithm duplicates