如何删除Nifi属性值末尾多余的逗号



我正在开发Apache Nifi,其中确实有删除末尾多余逗号的要求。

我想使用连接方法连接3个属性。如果所有属性都有值,那么它将完美工作,但任何属性都没有值,那么会在末尾添加额外的逗号。

我正在像这个一样使用

${allAttributes("Attr1", "Attr2", "Attr3"):join(",")}

我也使用了trim((函数,但它只会删除不常见的空格。

我们在Nifi 中有等于三聚体((的东西吗

@chandra

这里有两种方法:

  1. 组装组合属性,然后检查组合属性是否以结尾,然后使用substringBeforeLast删除最后一个逗号。这可能需要2个处理器步骤,但如果所有原始属性都为空,则可能无法解决问题
  2. 编写一种更复杂的表达式语言,在组合每个属性之前对其进行isEmpty/isNull检查。您可以将表达式语言链接在一起,并使用和/或/ifrese

您将需要对#2进行实验,因为这将使用表达式语言条件的链式组合。我的建议是创建一个简单的流,用字符串的GenerateFlowFile进行测试,并用每次执行多个测试的updateAttribute进行测试。

还建议您学习Expression Lanugage指南并将其作为书签:

https://nifi.apache.org/docs/nifi-docs/html/expression-language-guide.html

最新更新