”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > 比较大型 csv 文件 #eg38

比较大型 csv 文件 #eg38

发布于2024-11-08
浏览:866

这是两个结构相同的 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开源地址

版本声明 本文转载于:https://dev.to/esproc_spl/compare-large-csv-files-eg38-29m8?1如有侵犯,请联系[email protected]删除
最新教程 更多>
  • 如何使用 jQuery 高效创建 DOM 元素?
    如何使用 jQuery 高效创建 DOM 元素?
    使用 jQuery 创建 DOM 元素如果您希望增强 JavaScript 代码,您会对利用 jQuery 的功能来简化 DOM 操作感到好奇.jQuery 确实提供了创建 DOM 元素的替代方法,正如您在 $.create("div") 中注意到的那样。然而,这种方法不是 jQ...
    编程 发布于2024-12-23
  • 如何在 Eclipse 中轻松配置 Java 项目的本机库路径?
    如何在 Eclipse 中轻松配置 Java 项目的本机库路径?
    Eclipse 中的 Java 库发现困境:揭开秘密许多开发人员都在努力解决在 Eclipse 中配置 Java 库路径的艰巨任务,当应用程序执行由于缺少 .dll/.so/.jnilib 文件而停止时,会遇到挫败感。针对特定运行配置调整 VM 参数的传统方法通常被证明是无效的。相反,关键在于 Ec...
    编程 发布于2024-12-23
  • CSS 样式只能设置半个字符吗?还是图像是唯一的选择?
    CSS 样式只能设置半个字符吗?还是图像是唯一的选择?
    CSS 只能应用于半个字符吗?许多人寻求一种技术来仅设计半个字符的样式,因为例如,通过使一半透明。然而,尽管搜索了诸如“将 CSS 应用到字符的 50%”之类的方法,但到目前为止,还没有找到运气。话虽这么说,是否存在 CSS 或 JavaScript 解决方案,还是求助于图像是唯一的选择?新颖的解决...
    编程 发布于2024-12-23
  • 大批
    大批
    方法是可以在对象上调用的 fns 数组是对象,因此它们在 JS 中也有方法。 slice(begin):将数组的一部分提取到新数组中,而不改变原始数组。 let arr = ['a','b','c','d','e']; // Usecase: Extract till index p...
    编程 发布于2024-12-23
  • 如何在 Ubuntu 10.04 LTS 上安装用于 C++ 开发的 OpenSSL 库?
    如何在 Ubuntu 10.04 LTS 上安装用于 C++ 开发的 OpenSSL 库?
    在 Ubuntu 10.04 LTS 上安装 OpenSSL 库以进行 C 开发正如您在询问中提到的,使用 OpenSSL 构建代码需要适当的库。在您的情况下,您遇到了指示 OpenSSL 库文件丢失的错误。本指南将通过解释如何在 Ubuntu 10.04 LTS 上安装所需的 OpenSSL C ...
    编程 发布于2024-12-23
  • 如何在 WordPress 中处理带有 IN() 条件的准备语句?
    如何在 WordPress 中处理带有 IN() 条件的准备语句?
    在 WordPress 中使用 IN() 条件处理准备语句WordPress 提供准备语句来防止 SQL 注入攻击并提高查询性能。但是,在字符串中使用具有多个值的 IN() 条件可能会带来挑战。问题陈述:考虑以下情况:$villes = '"paris","fes&qu...
    编程 发布于2024-12-23
  • 尽管代码有效,为什么 POST 请求无法捕获 PHP 中的输入?
    尽管代码有效,为什么 POST 请求无法捕获 PHP 中的输入?
    解决 PHP 中的 POST 请求故障在提供的代码片段中:action=''而不是:action="<?php echo $_SERVER['PHP_SELF'];?>";?>"检查 $_POST数组:表单提交后使用 var_dump 检查 $_POST 数...
    编程 发布于2024-12-23
  • 泛型如何提高 Go 中代码的可重用性和类型安全性?
    泛型如何提高 Go 中代码的可重用性和类型安全性?
    理解 Go 中的泛型:开发人员指南泛型是编程中的一个基本概念,它允许开发人员创建可与多种数据类型。在像 Ruby 这种动态类型语言这样的语言中,通用概念可能并不熟悉。本文将深入解释 Go 这种静态类型语言中泛型的含义。了解静态类型与动态类型在动态类型语言中,变量可以保存任何类型的数据,无需显式声明。...
    编程 发布于2024-12-23
  • Python 中的表达式和语句有什么区别?
    Python 中的表达式和语句有什么区别?
    Python 中的表达式与语句在 Python 中,表达式和语句构成了代码的基本构建块。虽然两者在程序中具有不同的用途,但区分它们对于有效的编码实践至关重要。理解表达式表达式是表示值或执行操作的语法结构。计算。它们通常由标识符、文字和运算符组成,例如算术和布尔运算符、函数调用、切片运算符等。表达式的...
    编程 发布于2024-12-23
  • C++跨平台如何获取当前时间和日期?
    C++跨平台如何获取当前时间和日期?
    在 C 跨平台中获取当前时间和日期C 标准库现在提供了一种方便且可移植的方式来检索当前时间并通过 std::chrono::system_clock 类获取日期。在 C 11 中引入,此类提供了一个独立于系统的接口,用于访问高分辨率计时信息。语法:auto now = std::chrono::sy...
    编程 发布于2024-12-23
  • JavaScript 对象解构如何简化函数参数?
    JavaScript 对象解构如何简化函数参数?
    解开函数参数中 JavaScript 对象解构的语法如果你想用这样的对象参数定义函数:function moo({ a, b, c }) { // valid syntax! print(a); // prints 4 }...你没有出现幻觉。这种语法称为解构,允许您将对象属性直接解压到函数...
    编程 发布于2024-12-23
  • 如何修复 macOS 上 Django 中的“配置不正确:加载 MySQLdb 模块时出错”?
    如何修复 macOS 上 Django 中的“配置不正确:加载 MySQLdb 模块时出错”?
    MySQL配置不正确:相对路径的问题在Django中运行python manage.py runserver时,可能会遇到以下错误:ImproperlyConfigured: Error loading MySQLdb module: dlopen(/Library/Python/2.7/site-...
    编程 发布于2024-12-23
  • Node.js如何有效防范SQL注入攻击?
    Node.js如何有效防范SQL注入攻击?
    防范 Node.js 中的 SQL 注入攻击在 Web 开发中,防范 SQL 注入攻击至关重要。 Node.js 开发人员传统上在这方面面临困境,因为广泛使用的 node-mysql 模块缺乏与 PHP 的预处理语句相媲美的内置保护。Node-JS 可以防止 SQL 注入攻击吗? 幸运的是,node...
    编程 发布于2024-12-23
  • Bootstrap 4 Beta 中的列偏移发生了什么?
    Bootstrap 4 Beta 中的列偏移发生了什么?
    Bootstrap 4 Beta:列偏移的删除和恢复Bootstrap 4 在其 Beta 1 版本中引入了重大更改柱子偏移了。然而,随着 Beta 2 的后续发布,这些变化已经逆转。从 offset-md-* 到 ml-auto在 Bootstrap 4 Beta 1 中, offset-md-*...
    编程 发布于2024-12-23
  • 如何使用 MySQL 查找今天生日的用户?
    如何使用 MySQL 查找今天生日的用户?
    如何使用 MySQL 识别今天生日的用户使用 MySQL 确定今天是否是用户的生日涉及查找生日匹配的所有行今天的日期。这可以通过一个简单的 MySQL 查询来实现,该查询将存储为 UNIX 时间戳的生日与今天的日期进行比较。以下 SQL 查询将获取今天有生日的所有用户: FROM USERS ...
    编程 发布于2024-12-23

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3