gpt4 book ai didi

hadoop - NiFi : UpdateAttribute to change filename

转载 作者:可可西里 更新时间:2023-11-01 14:24:56 47 4
gpt4 key购买 nike

我使用 GetHTTPS--> UpdateAttribute --> PutHDFS 流程以便每隔 30 秒从 API 读取 json 文件并将文件放入 HDFS。第二步使用当前日期/时间戳更改文件名属性,这样我们就不会发生相同的文件名冲突。

到目前为止我已经尝试过:
${filename: prepend(${now():format("yyyy-MM-dd-HH:mm:ss")})}
这导致:

错误 PutHDFS 由于 java.lang.IllegalArgumentException:java.net,无法写入 HDFS。 URISyntaxException:绝对 URI 中的相对路径:.2017-08-01-11:01:13-filename.json

老实说,我不确定这个错误是从哪里来的,而且错误消息中创建的文件名中的日期之前有一个点 (.),根据用于在文件名前添加的表达式,该点不应该存在。在第二步中没有任何文件名操作,一切正常。非常感谢任何帮助,提前致谢!

最佳答案

您的问题表明您的文件名包含一些无效字符,这些字符可能是“.”。或“:”。

你必须使用下面的表达式来存储文件名的毫秒数。

${filename:prepend(${now():toNumber()})}

toNumber 将日期转换为毫秒。

或者如果你愿意,你可以像这样存储。

${filename:prepend(${now():format("yyyy-MM-dd-HH-mm-ss")})}

或者您可以使用 UUID() 作为文件名的前缀。

https://nifi.apache.org/docs/nifi-docs/html/expression-language-guide.html#uuid

关于hadoop - NiFi : UpdateAttribute to change filename,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45434060/

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