ExecuteStreamCommand
используется для выполнения команд оболочки (скриптов, утилит и т. Д.) В командной строке (он же терминал).Внутренние библиотеки NiFi недоступны для сценариев, работающих в этом контексте, если вы явно не объедините и не импортируете их в эти сценарии.Взаимодействие с NiFi ограничивается потоковым содержимым, передаваемым через STDIN
и STDOUT
в этом случае.См. этот ответ для более подробной информации.
Если вы хотите использовать скрипт Python для чтения непосредственно из атрибутов и содержимого потокового файла NiFi и реализовать пользовательский StreamCallback
, вам следует использовать ExecuteScript
или InvokeScriptedProcessor
.Это обеспечивает более тесную интеграцию с концепциями NiFi, но, в частности, для Python, означает, что модули, изначально скомпилированные (модули Python, написанные на C), недоступны, поскольку NiFi использует Jython (совместимый с JSR-223).