gpt4 book ai didi

csv - 尼菲 : Regular Expression in ExtractText gets CSV header instead of data

转载 作者:行者123 更新时间:2023-12-03 03:38:28 25 4
gpt4 key购买 nike

我正在开发一个获取 CSV 文件的流程。我想根据 CSV 记录中的第一个字段将记录放入不同的目录中。

例如,CSV 文件如下所示

country,firstname,lastname,ssn,mob_num
US,xxxx,xxxxx,xxxxx,xxxx
UK,xxxx,xxxxx,xxxxx,xxxx
US,xxxx,xxxxx,xxxxx,xxxx
JP,xxxx,xxxxx,xxxxx,xxxx
JP,xxxx,xxxxx,xxxxx,xxxx

我想获取第一个字段的字段值,即国家/地区。将这些记录放入特定目录中。美国记录转到美国目录,英国记录转到英国目录,依此类推。

我现在的流程是:

GetFile ----> SplitText(行分割计数 = 1 & 标题行计数 = 1)----> ExtractText (line = (.+)) ----> PutFile(Directory =\tmp\data\${line:getDelimitedField(1)})。我需要将头文件复制到所有拆分文件中以用于不同的目的。所以我需要它们。

问题是,传入的 CSV 文件被成功分割成多个带有 header 的流文件。但是,我在 ExtractText 处理器中给出的正则表达式根据分割流文件的 CSV header 而不是记录对其进行评估。因此,我总是在“线路”属性中输入“国家”,而不是“美国”或“英国”。因此,所有文件都会转到 \tmp\data\country。帮我解决这个问题。

最佳答案

我相信 getDelimitedField 只能在单行上工作,并且可能不会超出分割文件中的换行符。

我主张采用稍微不同的方法,您可以更改 ExtractText 以通过正则表达式查找国家/地区代码,并避免需要将文件内容作为属性包含在内。

使用 ^.*\n+(\w+) 的正则表达式将捕获第一行和逗号之前的第一组单词字符,并将它们放置在您在捕获中指定的属性名称中第 1 组(例如国家/地区.1)。

我创建了一个模板,应该可以获取您正在寻找的值,可在 https://github.com/apiri/nifi-review-collateral/blob/master/stackoverflow/42022249/Extract_Country_From_Splits.xml 获取。

关于csv - 尼菲 : Regular Expression in ExtractText gets CSV header instead of data,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42022249/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com