Я считаю, что проблема в том, что pandas - это скомпилированный модуль (написанный на C), а не чистый Python. Причина этого заключается в том, что благодаря движку JSR-223 процессор Apache NiFi ExecuteScript
использует Jython , а не фактический Python . Таким образом, код Python прекрасно работает, но он не может зависеть от модулей, которые не являются чистым Python.
Обходной путь - использовать процессор ExecuteStreamCommand
для вызова скрипта Python, который зависит от панд через командную строку (т.е. python my_script_that_uses_pandas.py
). Содержимое потокового файла будет передано в STDIN
и получено из STDOUT
. Вот связанный ответ , подробно описывающий это.