Apache nifi 使用UpdateRecord处理器将flowfile内容列从十六进制转换为十进制

Apache nifi 使用UpdateRecord处理器将flowfile内容列从十六进制转换为十进制,apache-nifi,Apache Nifi,我得到了一个流文件,其中一列内容为十六进制值。我的要求是导出一个具有相应十进制值的新列。如果我尝试使用UpdateRecord Processor,将替换值策略作为“文字值”,并尝试使用${field.value:fromRadix(16)}更新现有字段值,那么它工作正常。但是,如果我尝试使用现有列的值派生一个新列,那么我将得到运行时错误。我使用替换值策略作为“记录路径值”,使用动态属性值作为${/existing_column:fromRadix(16)}。您能告诉我这里缺少什么吗。如果您将策

我得到了一个流文件,其中一列内容为十六进制值。我的要求是导出一个具有相应十进制值的新列。如果我尝试使用UpdateRecord Processor,将替换值策略作为“文字值”,并尝试使用${field.value:fromRadix(16)}更新现有字段值,那么它工作正常。但是,如果我尝试使用现有列的值派生一个新列,那么我将得到运行时错误。我使用替换值策略作为“记录路径值”,使用动态属性值作为${/existing_column:fromRadix(16)}。您能告诉我这里缺少什么吗。

如果您将策略设置为“记录路径”,那么在EL求值之后,该值必须是有效的记录路径语句,并且您的语句无效:
${/existing\u column:fromRadix(16)}
。它将失败,因为当它首先执行EL时,EL不知道
/existing\u column
是什么时候

fromRadix确实需要一个记录路径函数,这样才能执行
fromRadix(/existing\u column,16)

如果没有这一点,我认为你需要做一个两步的过程

步骤1-第一个更新记录具有
/new\u column=/existing\u column
以使用原始列的十六进制值创建新列


步骤2-第二个更新记录有
/new\u column=${field.value:fromRadix(16)}
来转换新列。

是Bryan。我仅使用上述建议的方法完成了开发。我已经在使用QueryRecord进行一些转换。作为QueryRecord的一部分,我介绍了步骤1,并使用策略为“LiteralValue”的UpdateRecord实现了步骤2。我在文档中看不到RecordPath语言的fromRadix()函数,因为记录路径中当前不存在fromRadix