如何使用nifi表达式语言将日期更改为文件夹路径?

5w9g7ksd  于 2021-05-27  发布在  Hadoop
关注(0)|答案(1)|浏览(651)

在nifi中,我需要将一堆json文件传输到hdfs。json文件有一个名为“creationdate”的字段,该字段的日期为unix。我需要使用其中的日期将文件导入以日期命名的hdfs目录,如“2019-01-19”“2019-01-20”“2019-01-21”等。
起初,我使用了一个“evaluatejsonpath”处理器和一个“puthdfs”处理器。“evaluate…”处理器将“creationdate”作为属性,“${creationdate}”作为值。在puthdfs处理器中,对于目录,我将“/${creationdate}”
但是后来我发现json文件中的日期有完整的时间戳,比如“2019-01-19t04:34:28.527722+00:00”
显然我不需要这些,只要前八位数字。那么,如何将这个大字符串转换成一个整洁的8位目录名呢?我需要使用正则表达式吗?如果需要,如何实现?提前谢谢你的帮助。

p5fdfcr1

p5fdfcr11#

可以使用updateattribute和日期表达式语言函数对其进行格式化。
https://nifi.apache.org/docs/nifi-docs/html/expression-language-guide.html
示例(不特定于您的格式):

${creationDate:toDate('MM-dd-yyyy'):format('yyyy/MM/dd')}

在updateattribute中,您将添加一个新的属性名creationdate,并将该值设置为如上所示的表达式。

相关问题