我是NiFi的新手。我正在尝试使用purrr::map
处理器执行Python脚本。当我尝试一个没有导入命令的简单脚本时,它运行良好并在nifi.StdOut中显示了输出。当我尝试运行包含诸如ExecuteScript
之类的导入命令的脚本时。它显示以下错误:
导入错误:没有名为Pandas的模块
我尝试在属性的Module目录中提供pkgs的路径。但这不是锻炼。任何帮助将不胜感激!
答案 0 :(得分:4)
我认为问题在于,pandas是一个本机编译的模块(用C编写),而不是纯Python。这是有问题的原因是,由于使用JSR-223引擎,Apache NiFi ExecuteScript
处理器使用 Jython 而不是实际的 Python 。因此,Python代码可以很好地运行,但是它不能依赖于不是纯Python的模块。
解决方法是使用ExecuteStreamCommand
处理器通过命令行(即python my_script_that_uses_pandas.py
)调用依赖于熊猫的Python脚本。流文件的内容将流式传输到STDIN
并从STDOUT
捕获。这是related answer的详细说明。