【发布时间】:2019-08-21 14:37:05
【问题描述】:
我有许多文件要转到 HDFS,命名约定是这样的:
- acme_beneficiary_20190820
- acme_stats_20190820
- acme_provision_20190820
- acme_sponsor_20190820
我想使用下划线之间的段作为变量来制作 HDFS 路径,所以它看起来像这样:
/my/hdfs/directory/sponsor/2019/
我找到了一种分两步完成此操作的方法,但我认为必须有一种方法可以一步完成。第一步,我有一个“更新属性”处理器,它创建一个具有以下值的变量“file_src”:
${filename:substringAfter('_')}
所以现在它将文件名视为“beneficiary_20190820”等。在此之后,我有另一个“更新属性”处理器,其中有一个名为“dest”的变量,其值如下:
${file_src:substringBefore('_'):toLower()}
所以现在我的 hdfs 目录可以是这样的:
/my/hdfs/directory/${dest}/2019
它有效,但感觉很笨重。有没有办法一步到位?我觉得这些表达式可能是嵌套的或其他东西。提前感谢您的帮助。
【问题讨论】:
标签: hadoop expression apache-nifi