Как удалить конкретный текст из значения, используя apache nifi - PullRequest
1 голос
/ 06 ноября 2019

У меня есть CSV-файл, и мне нужно удалить определенный текст из столбца и заменить другое значение для этого.

Мой CSV

date,name
20191106,sachith

Чтобы сделать это, я использовал *Процессор 1006 * со следующими конфигурациями.

/date -> ${field:replaceAll(2019,1212)}

CSV-Reader CSV-Reader

CSV-Record-Writer enter image description here

Моя текущая конфигурация соответствует следующему csv.

date,name
"",sachith

Ожидаемый результат

date,name
12121106,sachith

Что мне здесь не хватает? Я использовал QueryRecord процессор, но он также не решил мою проблему.

1 Ответ

1 голос
/ 06 ноября 2019

Я не могу подтвердить, что именно вы сделали, без вашей полной конфигурации UpdateRecord, но ваши Reader и Writer на 100% верны. Чтобы достичь ожидаемого результата, вам необходимо обновить конфигурацию UpdateRecord следующим образом: enter image description here

Я изменил стратегию замены значения на «Запись значения пути», и это позволяет мне заполнитьполе даты с использованием пути к записи в правой части динамического свойства '/ date'. Подробнее о том, как использовать путь записи здесь: https://nifi.apache.org/docs/nifi-docs/html/record-path-guide.html

Альтернативное решение, более близкое к исходной конфигурации:

enter image description here

Единственное, чего вам не хватало, это ссылаться на значение поля. Подробнее об этом в документации (если вы нажмете ссылку «Дополнительные сведения») для UpdateRecord здесь: https://nifi.apache.org/docs/nifi-docs/components/nifi-docs/components/org.apache.nifi/nifi-standard-nar/1.9.0/org.apache.nifi.processors.standard.UpdateRecord/index.html

Мой разум слишком быстро переключился на путь записи, но оба работают !!

Пожалуйста, дайте мне знать, если у вас возникнут какие-либо дальнейшие проблемы:)

...