正则表达式从 CSV 中提取所有行 - Apache Nifi

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

我的要求是这样的。

需要将传入流文件(从 CSV 文件输入)内容保留在属性中以供进一步处理,因为我需要在使用流文件内容之前进行 HTTP 调用。因此,我尝试使用带有以下正则表达式的“ExtractText”处理器将流文件内容(CSV 数据)提取到属性中。

([^,]*?),([^,]*),([^,]*)

但这给出了第一行附加了第二行的第一列。但不是流文件中的全部 CSV 内容。如何将整个 CSV 内容放入属性中?

工艺流程如下:

GetFile --> ExtractText --> ReplaceText(为 post 方法构建 HTTP 正文)--> InvokeHTTP --> AttributeToJSON(将流文件从属性转换为 JSON 内容)--> InvokeHTTP(使用原始 CSV 数据)

regex apache-nifi
2个回答
2
投票

也许你在问如何将传入的流内容存储到属性中!

为此,您可以使用 ExtractText 但使用正则表达式

(?s)(^.*$)

所以你将拥有属性名称:(?s)(^.*$)。

但是 - 请注意 ExtractText 缓冲区大小参数和组长度,如果您的流内容大于这些值(bufferszie 将排队,组长度将截断)。

一旦进入一个属性,它就会被推送到你的 JVM 中——如果它们很大的话,速度会很慢。


0
投票

今天早上实际上正在查找这个,[^^]+为我们工作。

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