【问题标题】:How to join two or more CSV files in Apache Nifi or How to copy columns to a CSV file from another如何在 Apache Nifi 中加入两个或多个 CSV 文件或如何将列复制到另一个 CSV 文件
【发布时间】:2020-12-29 17:17:29
【问题描述】:
假设我有两个没有公共列但行数相同的 CSV 文件。我们如何才能在 Nifi 中合并这些文件?
例如:文件 1
ColA ColB
A1 B1
A2 B2
文件 2
ColC ColD
C1 D1
C2 D2
输出应该是
ColA ColB ColC ColD
A1 B1 C1 D1
A2 B2 C2 D2
【问题讨论】:
标签:
csv
merge
apache-nifi
【解决方案1】:
“连接”两组记录的一般模式是使用 LookupRecord,有一个 CSVLookupRecord 服务,但查找模式需要键/列匹配。
对于您的用例,您仍然可以使用 LookupRecord,但您需要一个 ScriptedLookupService,而不是使用内置的 CSV 查找服务。您可以使用像 Groovy 这样的脚本语言来编写读取文件 2 的自定义查找服务,而不是尝试匹配公共键/字段/列,您只需返回查找文件中的当前行并前进到下一行。