【问题标题】:How can I extract a substring from a flowfile data in Nifi?如何从 Nifi 中的流文件数据中提取子字符串?
【发布时间】:2020-11-18 02:13:06
【问题描述】:

我有一个包含 txt 格式数据的文件,文件中的每一行都是 1 条记录。 我正在使用 splittext 处理器将流文件拆分为 1 个记录/文件。

我想从记录中提取一个子字符串。我需要从 start 到第 n 个索引获取一个子字符串。

e.g.
'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ012345678910'

result flowfile for first 10 chars= abcdefghij

- 我在此使用默认设置,但我尝试添加一些在线论坛中提到的属性 (att1)。没用。

请帮忙,

【问题讨论】:

    标签: apache-nifi


    【解决方案1】:

    您正在使用表达式语言来获取 ExtractText 中的子字符串,这是不正确的。

    ExtractText 的动态属性基于 RegEx 模式填充属性。

    因此您可以使用模式(.*) 将整个文本提取到名为att1 的属性中。然后,您可以使用 UpdateAttribute 处理器使用您正在使用的相同表达式语言语句来更新该属性 ${att1:substring(0,60)} - 但使用您创建的新属性的名称。

    查看 ExtractText 的文档并查看动态属性部分 https://nifi.apache.org/docs/nifi-docs/components/org.apache.nifi/nifi-standard-nar/1.12.1/org.apache.nifi.processors.standard.ExtractText/index.html

    【讨论】:

    • 嗨@Sdairs,谢谢。我试过了,但我仍然得到相同的内容(整个字符串)。我使用了 ExtractText 并添加了input=(.*)。在 UpdateAttribute 中,我添加了 att1=${input:substring(0,60)}。我需要添加任何其他参数吗?
    • @Sdairsn,nvm 我想通了。谢谢。
    猜你喜欢
    • 1970-01-01
    • 2015-05-31
    • 2011-01-02
    • 1970-01-01
    • 2013-07-03
    • 2015-09-01
    • 2011-11-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多