Apache-Nifi:ifElse的简短说明

Apache-Nifi:ifElse的简短说明

时间:2020-11-6 作者:gykj

在过去的几个月中,我一直在与Apache-NiFi一起工作。在此期间,我主要使用csv基于操作的操作。

最近,我遇到以下情况的问题。

在我的文章中flowfile,我需要对regex列值进行运算,并用其他一些代码“替换”它们。我使用replaceAll函数轻松地做到了这一点。

首先,让我们看一下replaceAllApache-NiFi中的功能。它带有两个字符串参数,第一个是a regex,第二个是替换值。

有关更多详细信息,我强烈建议阅读关于replaceAll的Apache-NiFi表达式语言指南。

对于第一次尝试,我在使用UpdateRecordprocessor的列中使用了以下语法:

纯文本

 

这首先检查列值的长度是否小于8个字符。如果是这样,它将替换为Undefined。但是,某些与[a-z]+pattern匹配的数据已被替换为Wrong,即使它们少于8个字符。

我试图自己解决此问题,由于花费了太多时间,我问了StackOverflow社区。Lamanus的回答使我想到了ifElseApache-NiFi。

现在,让我们来看一下Apache-NiFi的 ifElse行为。它有两个参数,但不同之处在于,其结果基于Subject表达式。

如果是主题true,则评估第一个参数,否则评估第二个。

如示例所示:${bool:ifElse('a','b')},这bool是正确的。因此,如果我使用replaceAll此值,则该值将替换为a福州小程序开发

为了使用此脚本,我必须更改逻辑,方法是检查它是否包含8个以上的字符,然后应用regex基于自定义的操作。

纯文本

 

我希望这个简短的描述可以使您更好地了解如何ifElse在Apache-NiFi中使用。

版权所有:https://www.eraycloud.com 转载请注明出处