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

Apache nifi 如何删除Nifi属性值末尾的多余逗号?,apache-nifi,Apache Nifi,我正在ApacheNIFI上工作,在那里我确实需要在末尾删除额外的逗号 我想使用连接方法连接3个属性。 如果所有属性都有值,那么它将完美工作,但任何属性都没有值,那么它将在末尾添加额外的逗号 我是这样用的 ${allAttributes("Attr1", "Attr2", "Attr3"):join(",")} 我也使用了trim()函数,但它只会删除不常见的空格 在Nifi中,我们有与trimend()相等的东西

我正在ApacheNIFI上工作,在那里我确实需要在末尾删除额外的逗号

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

我是这样用的

${allAttributes("Attr1", "Attr2", "Attr3"):join(",")}
我也使用了trim()函数,但它只会删除不常见的空格

在Nifi中,我们有与trimend()相等的东西吗

这里有两种方法:

  • 组合组合属性,然后检查组合属性是否以结尾,然后使用substringBeforeLast删除最后一个逗号。这可能需要两个处理器步骤,但如果所有原始属性都为空,则可能无法解决问题
  • 编写一种更复杂的表达式语言,在组合每个属性之前检查其isEmpty/isNull。可以将表达式语言链接在一起,并使用和/或/ifelse
  • 您需要尝试使用#2,因为它将使用表达式语言条件的链式组合。我的建议是创建一个简单的流,使用字符串的GenerateFlowFile进行测试,并使用每次执行多个测试的updateAttribute进行测试

    还建议您学习Expression Lanugage guide并将其保留为书签:


    非常感谢您的建议。将探索您建议的方法。但是我想在Nifi中有任何可用的东西,比如javascript中的trimend()。耶,看看所有表达式语言字符串函数的文档。替换、子字符串等。。。我认为substringBeforeLast将是最容易完成线条末端修剪的。。。