【问题标题】:Merge two flowfiles into one stream using apache-nifi使用 apache-nifi 将两个流文件合并为一个流
【发布时间】:2020-03-27 19:00:15
【问题描述】:

apache-nifi 我有以下场景

流文件1:

id,name
1,sachith
2,nalaka
3,muha

流文件2:

id,email
1,sachith@email.com
2,nalaka@email.com

合并这两个流文件后,结果应该是:

id,name,email
1,sachith,sachith@email.com
2,nalaka,nalaka@email.com
3,muha,

这里最重要的部分是,3,muha, 行应该在那里,email 字段为空。

我参考了Merge two JSON flowfile together in NiFi,这与我的问题非常相似。但不是为该行添加空值。

How to join two CSVs with Apache Nifi

目前我已经尝试使用MergeContent 处理器,但它附加了两个流文件。不添加为具有唯一 ID 的新列。

这里有非常相似的问题,Merge two schemas into one in Apache nifi,但没有太多细节。

【问题讨论】:

    标签: csv merge apache-nifi flowfile


    【解决方案1】:

    如果您可以将 LookupRecord 与 CSVRecordLookupService 一起使用,而不是两个流文件,您应该能够使用另一个流文件的详细信息来丰富原始流文件。

    进行流式丰富本身并不是真正的多流操作,因为流文件可能会在不同的时间和不同的地方出现,如果流文件没有被丰富,您将如何决定何时发送流文件,或者如何在等待匹配时存储未丰富的流文件需要多少内存?

    在 NiFi 世界中,假设有一个用于丰富数据的“静态”位置,并且使用带有 LookupService 的 LookupRecord,您可以在数据通过时丰富数据。当然,一些 LookupService 实现可能支持更新(例如,如果添加了其他行,则为 DatabaseRecordLookupService),但丰富发生在处理输入流文件的时间点,因此 LookupRecord 只能访问当时可以从 LookupService 获得的内容查找已完成。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-07-30
      • 2019-04-16
      • 2020-03-20
      • 1970-01-01
      • 1970-01-01
      • 2020-03-22
      • 2018-12-07
      • 2022-12-08
      相关资源
      最近更新 更多