我正在尝试在executestreamcommand处理器中执行python代码,并试图在代码中读取/写入流文件,为此,我必须使用某些库,例如
但是我在executeStreamCommand中遇到了找不到模块的错误。有人知道原因吗?
答案 0 :(得分:2)
ExecuteStreamCommand
用于在命令行(也称为终端)上执行Shell命令(脚本,实用程序等)。 NiFi内部库不适用于在该上下文中运行的脚本,除非您明确捆绑并导入这些脚本。在这种情况下,与NiFi的互动仅限于通过STDIN
和STDOUT
流式传输的流文件内容。有关更多详细信息,请参见this answer。
如果要使用Python脚本直接从NiFi流文件中读取属性和内容并实现自定义StreamCallback
,则应使用ExecuteScript
或InvokeScriptedProcessor
。这允许与NiFi概念进行更紧密耦合的集成,但是特别是对于Python,这意味着本地编译模块(用C编写的Python模块)不可用,因为NiFi使用Jython(与JSR-223兼容)。