Apache NiFi中的Python错误:导入错误:没有名为Pandas的模块

时间:2019-04-11 15:11:29

标签: python-3.x pandas apache-nifi

我是NiFi的新手。我正在尝试使用purrr::map处理器执行Python脚本。当我尝试一个没有导入命令的简单脚本时,它运行良好并在nifi.StdOut中显示了输出。当我尝试运行包含诸如ExecuteScript之类的导入命令的脚本时。它显示以下错误:

  

导入错误:没有名为Pandas的模块

我尝试在属性的Module目录中提供pkgs的路径。但这不是锻炼。任何帮助将不胜感激!

1 个答案:

答案 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的详细说明。