在尽力找到与此问题相关的先前问题和示例后,仍然没有找到我正在寻找的答案,我认为我会自己提交问题。
ExecuteStreamCommand对我来说似乎是完美的处理器,原因如下:
简而言之,我尝试用ExecuteStreamCommand做的是:
python3 my_script.py
)为了清楚起见,我目前无法理解:
我遇到过ExecuteScript的各种示例,但不幸的是,这些并不完全转化为使用ExecuteStreamCommand。
提前谢谢你。任何建议都表示赞赏。
答案 0 :(得分:9)
根据您的问题,您说您需要在不使用InvokeScriptedProcessor
或ExecuteScript
处理器的情况下调用Python脚本,因为您无法使用Jython。鉴于这一要求,您仍应该能够实现目标。虽然它需要熟悉框架,但所有这些信息都来自ExecuteStreamCommand
documentation。
您的“我目前无法理解”部分:
如何调用python脚本(来自ExecuteStreamCommand Processor)
在ExecuteStreamCommand
处理器中,使用以下命令配置命令参数和命令路径属性:
any flags or args, delimited by ;
(即/path/to/my_script.py
)/path/to/python3
如何在Python中加载FlowFile
ExecuteStreamCommand
处理器的输出流关系的结果流文件的内容中。在此实例中,您的脚本无需了解“flowfiles”。如果您使用ISP
或ES
处理器,则可以使用NiFi脚本API,该API会自动注入脚本以创建或更新flowfile对象。 0
)NiFi将生成包含该内容的新流文件。如果将ESC
的输出目标属性属性设置为非空值,则NiFi将使用包含脚本输出的同名新属性来更新现有的流文件。