Как использовать язык выражений Nifi, чтобы изменить дату в пути к папке? - PullRequest
0 голосов
/ 30 января 2019

В 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-значное имя каталога?Нужно ли мне использовать регулярное выражение, и если да, то как это можно реализовать?Заранее спасибо за любую помощь.

1 Ответ

0 голосов
/ 30 января 2019

Вы можете использовать UpdateAttribute и использовать функции языка выражения даты для его форматирования.

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

Пример (не относится к вашему формату):

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

В UpdateAttribute вы добавили бы новое имя свойства creationDate и задали бы значение для выражения, как указано выше.

...