Чтобы выполнить последующую обработку потокового файла с использованием Python, вы можете использовать процессоры ExecuteStreamCommand
или ExecuteScript
/ InvokeScriptedProcessor
.
Процессор ExecuteStreamCommand
будет запускать команду внешней оболочки, например python3 my_python_script.py -arg1 string -arg2 213
, которая может переносить пользовательский код Python и использовать STDIN
для передачи существующего содержимого потокового файла и STDOUT
для захвата нового содержимого потокового файла. Заполните свойства процессора Аргументы и Путь команды процессора, чтобы найти исполняемый файл python
и предоставить аргументы CLI, включая атрибуты потокового файла, через язык выражений NiFi. См. этот ответ для примера.
Процессор ExecuteScript
выполняет код Jython (Python, но без доступа к собственным библиотекам, только совместимость Python 2.7 и некоторые другие ограничения из-за JSR-223) в та же JVM, что и NiFi. Вы можете обрабатывать атрибуты и содержимое потокового файла напрямую с помощью кода Python. См. этот ответ или этот ответ для получения более подробной информации.