bal*_*ika 4 hadoop apache-nifi
我使用GetHTTPS - > UpdateAttribute - > PutHDFS流程来读取API中的json文件,每次让我们说30秒并将文件放入HDFS.第二步使用当前日期/时间戳更改filename属性,以便我们没有相同的文件名冲突.
到目前为止我已经尝试过了:
${filename: prepend(${now():format("yyyy-MM-dd-HH:mm:ss")})}
这会导致:
ERROR PutHDFS由于java.lang.IllegalArgumentException:java.net,无法写入HDFS.URISyntaxException:绝对URI中的相对路径:.2017-08-01-11:01:13-filename.json
我不确定这个错误来自哪里,说实话,并且在错误消息中创建的文件名中的日期之前有一个点(.)根据用于添加文件名的表达式不应该存在.在第二步中没有任何文件名操作,一切都按预期工作.任何帮助都非常感谢,提前感谢!
您的问题表明您的文件名包含一些可能是'.'的无效字符.要么 ':'.
你必须使用下面的表达式来存储带文件名的毫秒.
${filename:prepend(${now():toNumber()})}
Run Code Online (Sandbox Code Playgroud)
toNumber将日期转换为毫秒.
或者如果你愿意,你可以这样存储.
${filename:prepend(${now():format("yyyy-MM-dd-HH-mm-ss")})}
Run Code Online (Sandbox Code Playgroud)
或者您可以使用UUID()作为文件名前缀.
https://nifi.apache.org/docs/nifi-docs/html/expression-language-guide.html#uuid
| 归档时间: |
|
| 查看次数: |
6357 次 |
| 最近记录: |