从 CSV 中提取所有行的正则表达式 - Apache Nifi
Regex to extract all the rows from CSV - Apache Nifi
我的要求是这样的
需要在属性中保留传入流文件(从 CSV 文件输入)的内容以进行进一步处理,因为我需要在使用流文件内容之前进行 HTTP 调用。因此,我正在尝试使用具有以下正则表达式的“ExtractText”处理器将流文件内容(CSV 数据)提取到属性中。
([^,]*?),([^,]*),([^,]*)
但这是给第一行附加第二行的第一列。但不是流文件中的全部 CSV 内容。如何将整个 CSV 内容放入属性中?
流程如下:
GetFile --> ExtractText --> ReplaceText(为 post 方法构建 HTTP 主体)--> InvokeHTTP --> AttributeToJSON(将流文件从属性转换为 JSON content) --> InvokeHTTP(使用原始CSV数据)
也许你在问如何将传入的流内容存储到一个属性中!
为此,您将使用 ExtractText,但使用正则表达式
(?s)(^.*$)
因此您将拥有属性名称:(?s)(^.*$).
但是 - 请注意 ExtractText buffersize 参数和组长度,如果您的流内容大于这些值(bufferszie 将排队并且组长度将被截断)。
同样,一旦进入一个属性,它就会被推入您的 JVM - 如果它们很大,速度会非常慢。
我的要求是这样的
需要在属性中保留传入流文件(从 CSV 文件输入)的内容以进行进一步处理,因为我需要在使用流文件内容之前进行 HTTP 调用。因此,我正在尝试使用具有以下正则表达式的“ExtractText”处理器将流文件内容(CSV 数据)提取到属性中。
([^,]*?),([^,]*),([^,]*)
但这是给第一行附加第二行的第一列。但不是流文件中的全部 CSV 内容。如何将整个 CSV 内容放入属性中?
流程如下:
GetFile --> ExtractText --> ReplaceText(为 post 方法构建 HTTP 主体)--> InvokeHTTP --> AttributeToJSON(将流文件从属性转换为 JSON content) --> InvokeHTTP(使用原始CSV数据)
也许你在问如何将传入的流内容存储到一个属性中!
为此,您将使用 ExtractText,但使用正则表达式
(?s)(^.*$)
因此您将拥有属性名称:(?s)(^.*$).
但是 - 请注意 ExtractText buffersize 参数和组长度,如果您的流内容大于这些值(bufferszie 将排队并且组长度将被截断)。
同样,一旦进入一个属性,它就会被推入您的 JVM - 如果它们很大,速度会非常慢。