删除大型文本文件中的重复行
确定重复规则,先检查小样本,再使用 Sort 对大型本地文本文件去重。
删除大型文本文件中的重复行,首先要定义什么算作重复。 两行在编辑器中看起来相同,大小写、空格或其他字节却可能不同。 在将同一规则用于更大的输入之前,先确定哪些差异需要保留。
Sort 的 Deduper 会读取本地文件,并另行保存结果。 当整个数据集难以在编辑器中打开时,这种方式尤其有用。输入内容不会上传。
确定哪些内容算作重复
Deduper 默认区分大小写。这是一项数据处理决策: 对于某些记录,大小写变化可能具有实际含义。 不要仅仅因为折叠大小写后行数更少,就启用这一选项。
下面的示例包含一行完全重复的内容:
[email protected]
[email protected]
[email protected]
[email protected] 区分大小写时,会保留三个不同的行值。 不区分大小写的比较会将 alpha 的两种写法视为同一个值。 此样本只用于说明相等规则,不是吞吐量基准, 也不承诺每个处理模块都会以某种顺序输出。
去重不会验证记录的实际含义。 它不能证明邮箱账户可用、URL 可以访问,或源记录准确。 请使用能够回答实际问题的模块。
验证小样本
创建一个小文件,放入自己数据中的完全重复行、大小写变体和有代表性的长行。 再加入必须保持不同的记录。保留原文件,以便独立核对预期结果。
打开 Deduper,选择输入和本地输出文件夹,并检查重复处理选项。 先运行样本。应检查保存下来的实际记录,而不是只看界面中减少了多少行。
如果还需要转换记录,请单独检查相应的 Cleaner 或 URL Cleaner 行为。 规范化记录会改变参与比较的内容。对于任意文本, 不要假定专门针对凭据的清理规则就是通用文本转换。
运行并检查输出
样本结果符合预期后,再选择完整输入。 为输入、处理状态和输出预留足够的本地磁盘空间。 文件大小、唯一行数、行长度、存储速度和设置都会影响运行; 仅凭输入字节数无法确定完成时间。
Deduper 会在所选输出位置保存 deduped.txt。
抽查保存的记录,并核对报告的计数是否与已完成的操作一致。
中断的运行只完成了部分工作,规划后续操作时应保留这一区别。
如果需要一次合并多个内容重叠的文件,可以使用开启去重的 Joiner。 相关指南介绍了具体流程。下方模块参考文档列出了其他工具及其输出文件。
在下游检查完成之前,保留已接受的输出和原始来源。 只有想保留的记录仍然存在,文件变小才有意义。

