首页 >Java >java教程 >比较大型 csv 文件 #eg38

比较大型 csv 文件 #eg38

PHPz
PHPz原创
2024-09-10 16:31:02971浏览

这是两个结构相同的 csv 文件(A 和 B)。两者都使用KEY_A、KEY_B和KEY_C作为主键,并且两者有不同的记录。

Compare large csv files #eg38
使用Java通过三种方式比较两个文件,并将结果分别写入新的csv文件。 1. 找到主键相等而其他字段值不相等的记录,输出其主键,然后输出A的其他字段和B的其他字段。以下是预期结果:

Compare large csv files #eg38

  1. 根据主键查找A和B的差异,即A中存在但B中不存在的记录。以下是预期结果:

Compare large csv files #eg38

  1. 根据主键求B和A的差异。以下是预期结果:

Compare large csv files #eg38
编写 SPL 代码进行这三个比较。以下是第一次比较:

Compare large csv files #eg38

Compare large csv files #eg38

Compare large csv files #eg38
T()函数解析csv文件或将数据写入csv文件; @c 选项允许使用游标从无法装入内存的文件中检索数据。 sortx() 函数对游标中的数据进行排序。 joinx() 函数执行合并连接。 merge()函数合并记录; @d 选项可以找到差异。

阅读如何在 Java 中调用 SPL 脚本,了解如何将 SPL 集成到 Java 应用程序中。

这是 StackOverflow 上的问题之一。你可以点击查看,传统的解决方案相当复杂,但 SPL 方法确实简单高效。

SPL开源地址

以上是比较大型 csv 文件 #eg38的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn