c# - 从非常大的文本文件中删除重复的字符串

标签 c# string duplicates

我必须从非常大的文本文件 (100 Gb+) 中删除重复的字符串

由于数据的大小,在内存中删除重复项是没有希望的,我已经尝试过 bloomfilter 但没有用超过 5000 万个字符串..

字符串总数超过 1 万亿

我想知道有什么方法可以解决这个问题..

我最初的尝试是,将文件分成多个子文件,对每个文件进行排序,然后将所有文件合并在一起...

如果您有比这更好的解决方案,请告诉我,

谢谢..

最佳答案

您在这里寻找的关键概念是 external sorting .您应该能够使用该文章中描述的技术对整个文件进行合并排序,然后按顺序运行它以删除重复项。

如果文章不够清楚,请查看引用实现,例如 this one .

关于c# - 从非常大的文本文件中删除重复的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9816201/

相关文章:

c# - 如何使用多个异步或缓冲 IO 流?

c# - 将长字符串二进制转换为十六进制 C#

java - 如何使用方法在java中查找公共(public)后缀

创建一个用零填充的特定维度的文件

c# - 如何在MVC Entity Framework 代码优先方法中加密和解密存储数据库的密码?

c# - 从一个程序获取变量到另一个程序

java - 如何从字符串中删除非 ASCII 字符?

pandas - 根据值(重复)提取 Pandas 数据帧的子集?

c++ - 删除 multimap 中的重复键

python - 删除出现次数超过 N 次的重复值