gpt4 book ai didi

apache-nifi - 更新处理器返回空字符串 : Converting string date to long in NIFI

转载 作者:行者123 更新时间:2023-12-04 01:59:11 26 4
gpt4 key购买 nike

将图像上提到的格式的字符串日期转换为数字(长),但我得到的输出是空字符串。

使用 JSON 读写器;

在输入 JSON 中它是一个字符串,在输出 JSON 中它是 long 类型。

尝试将输出 JSON 类型保留为字符串并尝试计算以下表达式,但它也是空字符串

${DATE1.value:toDate('yyyy-MM-dd HH:mm:ss'):toNumber():toString()}

尝试转换的示例数据:{"DATE1": "2018-01-17 00:00:00"}

试图按照这个 link 上的解决方案但仍然是空字符串。

enter image description here

最佳答案

方法一:引用flowfile的内容:-

如果您想根据内容中的字段值更改 DATE1 值,则需要引用 field.value

Replacement Value Strategy

Literal Value

//DATE1${field.value:toDate('yyyy-MM-dd HH:mm:ss'):toNumber()}

从内容中引用 DATE1 值,然后对其应用表达式语言。 UpdateRecord Config

Avro 架构注册表:-

{ "namespace": "nifi", "name": "balances", "type": "record",
"fields": [ { "name": "DATE1", "type": "string"} ] }

从内容中读取 DATE1 字段值作为字符串。

JsonRecordSetWriter:-

{ "namespace": "nifi", "name": "balances", "type": "record",
"fields": [ { "name": "DATE1", "type":"long"} ] }

在 SetWriter 中将 DATE1 设置为 Long 类型。

输入:-

{"DATE1":"2018-01-17 00:00:00"}

输出:-

[{"DATE1":1516165200000}]

(或)

方法二:引用flowfile的属性:-

如果您将 DATE1 作为值为 2018-01-17 00:00:00 的流文件的属性,我们将使用 DATE1 属性而不是 field.value(指的是流文件的内容)

然后 UpdateRecord Configs 将是

重置值(value)策略

Literal Value

//DATE1
${DATE1:toDate('yyyy-MM-dd HH:mm:ss'):toNumber()}

在此表达式中,我们使用 DATE1 属性来更新流文件的内容。两种方法都会产生相同的输出。

关于apache-nifi - 更新处理器返回空字符串 : Converting string date to long in NIFI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48531004/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com