如何在Python中使用NiFi ExecuteScript处理器?
我在ApacheNIFI中使用一个简单的Python脚本(保存为.py文件)对ExecuteScript处理器进行了非常基本的设置,如下所示。在处理器的属性中,我将脚本引擎设置为python,并将脚本文件设置为该脚本的路径如何在Python中使用NiFi ExecuteScript处理器?,python,etl,apache-nifi,Python,Etl,Apache Nifi,我在ApacheNIFI中使用一个简单的Python脚本(保存为.py文件)对ExecuteScript处理器进行了非常基本的设置,如下所示。在处理器的属性中,我将脚本引擎设置为python,并将脚本文件设置为该脚本的路径 import time count = 0 while(count < 20): print "The counter says: ", count count = count + 1 time.sleep(.1) 导入时间 计数=0 而(
import time
count = 0
while(count < 20):
print "The counter says: ", count
count = count + 1
time.sleep(.1)
导入时间
计数=0
而(计数<20):
打印“计数器显示:”,计数
计数=计数+1
时间。睡眠(.1)
这是我制作的数据流图:
我没有看到任何输出到日志或文件的内容。但是,我确实看到print语句出现在\nifi-0.6.1\logs\nifi-bootstrap.log中。我对这方面的了解目前有限。如果有人知道如何使用ExecuteScript处理器,或者给我一个比当前设置更好的示例,我将不胜感激。鉴于您的脚本,我认为一切都按预期运行。脚本没有生成任何流文件,这就是为什么没有任何内容从ExecuteScript移动到其他处理器,发送到system out的任何内容都会被捕获到bootstrap.log中,这就是为什么print语句会在那里结束 在ExecuteScript中使用执行的脚本可以访问几个标准对象:
- 会议
- 上下文
- 日志
- 关系失效
- 关系成功
我想知道您是否尝试过ExecuteProcess。它应该抓取标准输出并将其作为流文件发送:不确定“获取”标准对象是什么意思。这是否意味着不需要在.py文件中使用任何特殊的
import
语句来引用它们?这正是他的意思,它们是全局变量,因此您的脚本可以访问它们,而无需在其他地方定义它们。我们不能使用pandas或任何其他库:(