如何使用groovy脚本在apachi nifi流文件中逐行比较两个csv文件

问题描述 投票:0回答:1

我在apachi nifi中有一次场景,那就是我的流文件中有一个csv数据,我的数据库中有一些csv数据,这些数据与csv流文件有一些不同的数据,现在我想比较两个csv文件(我的 nifi 流文件中的流文件内容和我从数据库中读取的 csv 数据)使用 groovy 脚本,您能帮助我如何使用 nifi 实现此目的吗?我的数据如下。

existing content(123_456.csv) from db
    

A   3000    AAA008
A   3001    AAA008
A   3002    AAA008
A   3003    AAA008
A   3005    AAA008
A   3006    AAA008
A   3007    AAA008
A   3008    AAA008
A   3009    AAA008
A   3010    AAA008
A   3011    AAA008
A   3012    AAA008(This record is deleted in the new file from the flow file, so i dont need to consider this from the new file)



 Flow file content(123_456.csv) from apachi nifi flow file
    
A   3000    AAA008
A   3001    AAA008
U   3002    AAA009(This I need to update, since the third Colum is changed)
A   3003    AAA008
I   3013    AAA113(This I need to insert ,since I don't have this in the old file from the db)
A   3005    AAA008
A   3006    AAA008
A   3007    AAA008
A   3008    AAA008
A   3009    AAA008
A   3010    AAA008
A   3011    AAA008

你能帮我用groovy脚本来实现这个目标吗?谢谢你

groovy apache-nifi
1个回答
0
投票

创建 2 个列表 A 和 B 创建 2 组 A 匹配和 A 不匹配 创建 2 组 B 匹配和 B 不匹配

然后循环匹配 A 直到 B - 将匹配项添加到 A-match 将不匹配项添加到 A-nonmatch 然后循环 B 匹配直到 A - 将匹配添加到 B-match 将不匹配添加到 B-nonmatch

现在你有一组 从 A 到 B 的匹配 从 A 到 B 不匹配 从 B 到 A 的匹配 从 B 到 A 不匹配

© www.soinside.com 2019 - 2024. All rights reserved.