NiFi: создать имя файла, используя значения полей из потокового файла csv - PullRequest
0 голосов
/ 29 мая 2020

У меня есть файл потока csv с единственной записью. Мне нужно создать его имя файла на основе нескольких значений столбца в файле csv. Не могли бы вы сообщить мне, как мы можем это сделать, используя только имя столбца, а не положение столбца, так как положение столбца может измениться. Пример

Файл CSV

Имя, Город, Штат, Страна, Пол

Джон, Даллас, Техас, США, M

Имя файла должно быть John_USA .csv

Я пытаюсь извлечь текстовый процессор и вытащить первую строку данных, используя - row = ^. \ r? \ n (. )

А затем обновить процессор атрибутов Я извлекаю значения из столбцов, используя выражение ниже

$ {row: getDelimitedField (1)} _ $ {row: getDelimitedField (4)}. Csv

Но здесь используется позиция столбец, а не имя столбца. Как я могу построить его, используя имя столбца, а не положение столбцов

1 Ответ

1 голос
/ 29 мая 2020

То, как я это сделаю (возможно, не самый эффективный):

  • Преобразование CSV в json
  • Передача содержимого в атрибуты (чтобы вы могли получить доступ к поле, которое вы хотите, например dictionnary (ключ-значение))
  • Обновить атрибуты
  • Преобразуйте его обратно в CSV (таким образом, вы можете контролировать схему и положение полей).
...