集算器比较csv文件中数据差异_润乾软件|数据处理-数据计算引擎

本文介绍了一种使用集算器脚本处理CSV文件的方法,包括如何找出两个CSV文件之间的新增、删除及修改的记录,并提供了详细的代码示例。此外,还介绍了如何将集算器脚本集成到JAVA应用中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

old.csvnew.csv的逻辑主键是userNamedate,需要分别找出新增的、删除的、修改的数据行。源文件如下:


可以看到new.csv中的第23行是新增的记录,第4行是修改的记录,old.csv中第3行是删除的记录。

集算器代码:


A1,B1:以逗号为分隔符读入文件。

A2,B2:将数据按照关键字排序。后面的merge函数要求数据有序。

A3:按关键字找到新增的记录。函数merge可进行多数据集归并,@d表示归并时找出差集。类似地还还有并集@u,交集@i。计算结果如下:


A4:按关键字找到删除的记录。计算结果如下:


A5:将关键字作为普通字段,找到修改过的记录。计算结果如下:


A6A5是中间计算结果,要计算更新的记录,还要在A6中计算A5和“新增”记录之间的差集。计算结果如下:


B6:将A6返回给JAVA或报表工具。

 

上述脚本已经完成了所有的数据处理工作,接下来通过JDBC集算器脚本集成在JAVAJAVA代码如下:

//建立esProc jdbc连接

Class.forName("com.esproc.jdbc.InternalDriver");

con= DriverManager.getConnection("jdbc:esproc:local://");

//调用esProc,其中test是脚本文件名,可接收参数

st =(com.esproc.jdbc.InternalCStatement)con.prepareCall("call test()");

st.execute();//执行esProc存储过程

ResultSet set = st.getResultSet();//获得计算结果

 

如果要将多个数据集返回给JAVA,可以将B6的代码改为:result new,delete,update


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值