将具有图像上提到的格式的字符串日期转换为数字(长),但我得到的输出是空字符串。
使用 JSON 读取器和写入器;
其中,在输入 JSON 中它是一个字符串,在输出 JSON 中它是 long 类型。
尝试将输出 JSON 类型保留为 String 并尝试计算以下表达式,但这也是空字符串
${DATE1.value:toDate('yyyy-MM-dd HH:mm:ss'):toNumber():toString()}
尝试转换的示例数据:{"DATE1" : "2018-01-17 00:00:00"}
尝试遵循此链接上的解决方案,但仍然得到空字符串。
方法1:引用flowfile的内容:-
如果您想根据内容中的字段值更改 DATE1 值,则需要引用field.value
重置价值策略
字面值
//DATE1 ${field.value:toDate('yyyy-MM-dd HH:mm:ss'):toNumber()}
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 类型。
输入:-
{“日期1”:“2018-01-17 00:00:00”}
输出:-
[{“日期1”:1516165200000}]
(或者)
方法2:引用流程文件的属性:-
如果您将 DATE1 作为值为 2018-01-17 00:00:00 的流文件的属性,我们将使用 DATE1 属性而不是 field.value(指的是流文件的内容)
那么 UpdateRecord Configs 将是
重置价值策略
字面值
//DATE1
${DATE1:toDate('yyyy-MM-dd HH:mm:ss'):toNumber()}
Run Code Online (Sandbox Code Playgroud)
在此表达式中,我们使用 DATE1 属性来更新流文件的内容。两种方法都会产生相同的输出。
归档时间: |
|
查看次数: |
5684 次 |
最近记录: |