C#实现大数据量TXT文本数据快速高效去重

原文 C#实现大数据量TXT文本数据快速高效去重

对几千万的TXT文本数据进行去重处理,查找其中重复的数据,并移除。尝试了各种方法,下属方法是目前尝试到最快的方法。以下代码将重复和不重复数据进行分文件存放,提升效率的关键是用到了HashSet。
                TextReader reader = File.OpenText(m_dataFilePath);
                string[] files = new string[2];
                files[0] = ROOT_DIR + "不重复数据.txt";
                files[1] = ROOT_DIR + "重复数据.txt";
                TextWriter writer1 = File.CreateText(files[0]);
                TextWriter writer2 = File.CreateText(files[1]);
                string currentLine;
                int idx = 0;
                HashSet<string> previousLines = new HashSet<string>(new MyEqualityComparer());
                while ((currentLine = reader.ReadLine()) != null)
                {
                    if ((++idx % 10000) == 0)
                        UpdateInfo("正在比对第 " + idx + " 条数据…");
                    currentLine = currentLine.TrimEnd();
                    if (previousLines.Add(currentLine))
                    {
                        writer1.WriteLine(currentLine);
                    }
                    else
                    {
                        if(m_allSave)
                            writer2.WriteLine(currentLine);
                    }
                }
                reader.Close();
                writer1.Close();
                writer2.Close();
                reader.Dispose();
                writer1.Dispose();
                writer2.Dispose();

1000万数据的处理时间也就是转瞬之间,试试看?
时间: 2024-09-10 04:12:31

C#实现大数据量TXT文本数据快速高效去重的相关文章

C#实现把txt文本数据快速读取到excel中

  这篇文章主要介绍了C#实现把txt文本数据快速读取到excel中,本文直接给出示例代码,需要的朋友可以参考下 今天预实现一功能,将txt中的数据转到excel表中,做为matlab的数据源.搜集一些c#操作excel的程序.步骤如下: 下载一个Microsoft.Office.Interop.Excel.dll 在项目中引用. 编写代码如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 2

妙用Excel把有规律的txt文本数据分列

刚考完试,领导心血来潮,要求统计一下男女比例.平均分.及格人数等各项信息.学校一直使用专用软件登记考生资料,但该软件竟没有这些统计功能,暴汗.幸好发现这软件能把基本数据导出为文本文件,我想,拿到Word或Exce里或许有办法解决.下面是导出的文本,如图1. 导出的文本 要统计各项数据,首先要把连在一起的各列数据分开,首先想到的是用Word的文本转换为表格功能,但尝试后发现,在Word中要将文本转为表格,必须具有文字分隔符,但从图1可见,几列数据是连在一起的,没有Word能够识别的符号分隔,所以此

向Excel中导入TXT文本数据的三种方法

Excel支持导入外部文本文件中的文本内容.通过导入数据的方法我们可以很方便地使用外部数据,在许多时候可以免去重新手动键入文本的麻烦. 在Excel中导入文本有多种方法,我们来看一看-- 1.使用"打开"命令 这是最常用的方法,这种方法可以直接将文本文件打开为一个Excel工作簿. 选择菜单命令"文件|打开",在"打开"对话框中选择"文件类型"为"文本文件",如图1所示,然后找到要导入的文本文件并将其选中,

灵活运用Excel把有规律地txt文本数据分列

刚考完试,领导心血来潮,要求统计一下男女比例.平均分.及格人数等各项信息.学校一直使用专用软件登记考生资料,但该软件竟没有这些统计功能,暴汗.幸好发现这软件能把基本数据导出为文本文件,我想,拿到Word或Exce里或许有办法解决.下面是导出的文本,如图1. 导出的文本 要统计各项数据,首先要把连在一起的各列数据分开,首先想到的是用Word的文本转换为表格功能,但尝试后发现,在Word中要将文本转为表格,必须具有文字分隔符,但从图1可见,几列数据是连在一起的,没有Word能够识别的符号分隔,所以此

怎么将解析的txt文本数据写入到指定位置

问题描述 privatevoidbutton1_Click(objectsender,EventArgse){OpenFileDialogofd=newOpenFileDialog();ofd.Filter="(*.*)|*.*";ofd.RestoreDirectory=true;if(ofd.ShowDialog()==DialogResult.OK){textBox6.Text=ofd.FileName;FileStreamfs=newFileStream(ofd.FileNam

大数据量下的数据库查询与插入如何优化? (整理)

数据库经常要做一些查询与插入,但是如果查询和插入的数据量过大的时候就会引发数据库性能问题,降低数据库工作效率.因此性能调优是大家在工作中都能够预见的问题,大到世界五百强的核心系统,小到超市的库存系统,几乎都会有要调优的时候.面对形形色色的系统,林林总总的需求,调优的手段也是丰富多彩. 1.尽量使语句符合查询优化器的规则避免全表扫描而使用索引查询 2.避免频繁创建和删除临时表,以减少系统表资源的消耗. 3.尽量避免向客户端返回大数据量,若数据量过大,应该考虑相应需求是否合理. 4.建立高效的索引

sqlserver 大数据量数据库设计问题请教

问题描述 sqlserver 大数据量数据库设计问题请教 小弟不才,第一次接大数据量项目,其中一个主要表用于存储采集数据(每秒一条数据,共5个采集点)数据量如下: 数据量估算(按秒): 采集点 1 5 一天数据 86400 432000 十天数据 864000 4320000 一个月数据 2592000 12960000 一年数据 31536000 157680000 我原先的设计就是很简单,按照上面数据估算,5个采集点,建立5个对应的表,然后每十天(也就是旬)创建一个历史表保存数据. 但是,头

大数据量高并发的数据库优化详解_MsSql

如果不能设计一个合理的数据库模型,不仅会增加客户端和服务器段程序的编程和维护的难度,而且将会影响系统实际运行的性能.所以,在一个系统开始实施之前,完备的数据库模型的设计是必须的. 一.数据库结构的设计 在一个系统分析.设计阶段,因为数据量较小,负荷较低.我们往往只注意到功能的实现,而很难注意到性能的薄弱之处,等到系统投入实际运行一段时间后,才发现系统的性能在降低,这时再来考虑提高系统性能则要花费更多的人力物力,而整个系统也不可避免的形成了一个打补丁工程. 所以在考虑整个系统的流程的时候,我们必须

《驾驭大数据》一3.2 多个行业:文本数据的价值

3.2 多个行业:文本数据的价值 驾驭大数据文本是最大的也是最常见的大数据源之一.想想我们周围有多少文本信息的存在,电子邮件.短信.微博.社交媒体网站的帖子.即时通信.实时会议以及可以转换成文本的录音信息.文本数据是现在结构化程度最低的,也是最大的大数据源.幸运的是,我们在驾驭文本数据.利用文本数据来更好地做商业决策方面已经做了很多工作. 文本分析一般会从解析文本开始,然后将各种单词.短语以及包含文本的部分赋予语义.我们可以通过简单的词频统计,或更复杂的操作来进行文本分析.自然语言处理中已经有很