如何在Python中使用NiFi ExecuteScript处理器?

2024-04-28 04:42:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我在Apache NiFi中有一个非常基本的ExecuteScript处理器设置,其中有一个简单的Python脚本(另存为.py文件),如下所示。在处理器的属性中,我将脚本引擎设置为python,将脚本文件设置为该脚本的路径。

import time

count = 0

while(count < 20):
    print "The counter says: ", count
    count = count + 1
    time.sleep(.1)

这是我制作的数据流图: nifi dataflow

我没有看到任何输出到日志或PutFile的内容。但是,我确实看到print语句出现在\nifi-0.6.1\logs\nifi-bootstrap.log中。我目前对此了解有限。如果有人知道如何使用ExecuteScript处理器,甚至能给我一个比当前设置更好的例子,我将不胜感激。


Tags: 文件py引擎import路径脚本属性time
1条回答
网友
1楼 · 发布于 2024-04-28 04:42:21

鉴于你的剧本,我认为一切都按预期进行。脚本没有生成任何流文件,这就是为什么没有任何东西从ExecuteScript移动到其他处理器,并且发送到system out的任何东西都被捕获在bootstrap.log中,所以这就是print语句结束的原因。

在ExecuteScript中使用执行的脚本可以访问一些标准对象:

  • 会议
  • 上下文
  • 原木
  • 相关故障
  • 相对成功

为了生成流文件,您需要调用session.create()并获取生成的流文件并将其传输到REL_SUCCESS。

脚本处理器上最好的信息来源是Matt burges的博客,这个页面有一些好的背景(使用Groovy):

http://funnifi.blogspot.com/2016/02/executescript-processor-hello-world.html

这个有一个Jython的例子:

http://funnifi.blogspot.com/2016/03/executescript-json-to-json-revisited_14.html

相关问题 更多 >