Добавить имена файлов потоков в NiFi в файл CSV - PullRequest
0 голосов
/ 08 июня 2018

Сначала я использую процессор listFile для вывода списка всех файлов на определенной карте.Затем я хотел бы добавить $ {filename} потокового файла в NiFi к внешнему файлу example.csv.Я думал об использовании ExecuteScript с Python, но не знаю, как это сделать.

Я попробовал следующее:

Использовать два обработчика списка, один для карты и один для файла example.csv.Процессор replaceText для замены текста на ${filename}, mergeContent и putFile(replace example.csv).Работает только в первый раз.

1 Ответ

0 голосов
/ 11 июня 2018

Можно использовать процессор ExecuteScript со следующим скриптом на python

from org.apache.nifi.processors.script import ExecuteScript 
import subprocess

flowFile = session.get()
if flowFile is not None:
     myCsvRow = flowFile.getAttribute('filename')
     fd = open('/path/to/your/map/files.csv','a')
     fd.write(myCsvRow)
     fd.close()
     session.transfer(flowFile,ExecuteScript.REL_SUCCESS)
...