删除文件中的重复数据

发布于 2024-11-09 04:41:03 字数 89 浏览 0 评论 0原文

我在提出算法时遇到问题。伙计们,你们能帮我一下吗?

我有一个很大的文件,因此无法立即加载。存在重复数据(通用数据,可能是字符串)。我需要删除重复项。

I have a problem coming up with an algorithm. Will you, guys, help me out here?

I have a file which is huge and thus can not be loaded at once. There exists duplicate data (generic data, might be strings). I need to remove duplicates.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

舟遥客 2024-11-16 04:41:03

一种简单但缓慢的解决方案是读取 HashSet 中的第 1 GB。读取文件的顺序其余部分并删除文件中的重复字符串。比读取内存中的第二个千兆位(哈希集)并删除文件中的重复项,一次又一次......
它很容易编程,如果你只想做一次就足够了。

One easy but slow solution is read 1st Gigabite in HashSet. Read sequential rest of the file and remove duplicit Strings, that are in file. Than read 2nd gigabite in memory(hashset) and remove duplicit in files and again, and again...
Its quite easy to program and if you want to do it only once it could be enough.

北陌 2024-11-16 04:41:03

您可以计算每个记录的哈希值并将其保存在 Map> 中

读取构建地图的文件,如果您发现 HashKey 存在于您寻求定位的地图中,请仔细检查(如果不相等,则将该位置添加到映射集中)

you can calculate a hash for each record and keep that in a Map>

read in the file building the map and if you find the HashKey exists in the map you seek to position to double check (and if not equal add the location to the mapped set)

女皇必胜 2024-11-16 04:41:03

第二种解决方案:

  1. 创建新文件,在其中写入对<字符串,原始文件中的位置>
  2. 您将根据字符串对大文件使用经典排序(对大文件进行排序 = 对内存中文件的小部分进行排序,然后将它们合并在一起) - 在此期间,您将删除重复项,
  3. 然后重建原始顺序 = 您将再次对其进行排序,但是根据“原始文件中的位置”

Second solution:

  1. Create new file, where you write pairs <String, Position in original file>
  2. Than you will use classic sorting for big files according to String (Sorting big files = Sort small parts of file in memory, and than merge them together) - during this you will remove duplicits
  3. And than rebuild original order = you will sort it again but according to "Position in original file"
暮年 2024-11-16 04:41:03

取决于输入在文件中的放置方式;如果每一行都可以用行数据表示;

另一种方法是使用数据库服务器,将数据插入具有唯一值列的数据库表中,从文件中读取并插入到数据库中。最后数据库将包含所有唯一的行/行。

Depending on how the input is placed in the file; if each line can be represented by row data;

Another way is to use a database server, insert your data into a database table with a unique value column, read from file and insert into database. At the end database will contain all unique lines/rows.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文