Apache nifi “转换十六进制值”;2C0F19D10DA4E92896FAF7A92CE26F94D2FE91ACDC2A697031613F7C094A36“;使用fromRadius()函数转换为十进制

Apache nifi “转换十六进制值”;2C0F19D10DA4E92896FAF7A92CE26F94D2FE91ACDC2A697031613F7C094A36“;使用fromRadius()函数转换为十进制,apache-nifi,Apache Nifi,我正在尝试使用UpdateRecord处理器中的fromRadix()EL转换十六进制值(作为流文件内容的一部分)2c0f19d10da4e92896faf7a92ce26f94d2fe91acdc2a69730731613f7c094a36。下面是我使用的代码 ${field.value:isEmpty():not():ifElse('${field.value:fromRadix(16)}','${literal(“”}')} 但我收到错误,“将路由到故障:对于输入字符串”2C0F19D10

我正在尝试使用UpdateRecord处理器中的fromRadix()EL转换十六进制值(作为流文件内容的一部分)2c0f19d10da4e92896faf7a92ce26f94d2fe91acdc2a69730731613f7c094a36。下面是我使用的代码

${field.value:isEmpty():not():ifElse('${field.value:fromRadix(16)}','${literal(“”}')}

但我收到错误,“将路由到故障:对于输入字符串”2C0F19D10DA4E92896FAF7A92CE26F94D2FE91ACDC2A6970731613F7C094A36”

我用下面的代码通过Groovy进行了尝试,效果很好

def data1 = '2c0f19d10da4e92896faf7a92ce26f94d2fe91acdc2a69730731613f7c094a36'
BigInteger x = new BigInteger(data1,16)
println "original output: " + x

Output is coming as
original output: 19928446223359820201840237302010524452213876686816802601399388669528806869558

想知道我使用fromRadix(16)的UpdateRecord处理器代码有什么问题吗?

我遇到了一个非常类似的问题,当输入值(本例中为十六进制)是一个大字符串时,NiFi表达式语言似乎抛出了一个错误。
尝试运行“2C0F19D10DA4E92896FAF7A92CE26F94D2FE91ACDC2A69707371613F7C094A36”以获得“2c0f19d10da”(输入的子字符串)它是有效的。

那个十六进制字符串看起来像某种编码的数据,可能并不是你应该把它当作一个实际的数字来对待的。要知道是什么错了,你必须显示完整的错误。如果你在屏幕上看不到它,那就查看日志文件。