Apache Nifi - 从 CSV 文件中获取唯一记录

Apache Nifi - Getting unique records from CSV files

我有两个csv文件,两个文件都有记录。我想删除重复的记录。我想获得独特的记录。我如何使用 Apache Nifi 做到这一点?

谢谢!

input1.csv;

id,surname,name
1,ali,veli
2,mert,tolga

input2.csv;

id,surname,name
1,ali,veli
3,ahmet,ozan

output.csv;

id,surname,name
1,ali,veli
2,mert,ayşe
3,ahmet,ozan

您可以通过基于记录的处理并结合 MergeRecord 将两个 csv 文件合并为一个文件来完成此操作,然后您可以使用 QueryRecord 处理器进行重复数据删除,查询如下:

SELECT * FROM FLOWFILE
INTERSECT
SELECT * FROM FLOWFILE

SELECT DISTINCT FROM FLOWFILE 将不起作用。这是方解石文档 https://calcite.apache.org/docs/reference.html

所以你需要:

  • 忽略 header 设置为 true 的 CsvReader 控制器。
  • CsvRecordWriter 控制器
  • 合并记录
  • 查询记录

在 QueryRecord 的输出中,您将获得经过去重的 CSV 文件。

输出: