I have a very basic setup of the ExecuteScript processor in Apache NiFi with a simple Python script (saved as a .py file) as shown here. In the Properties of the processor, I set the Script Engine to python and Script File to the path of this script.
import time
count = 0
while(count < 20):
print "The counter says: ", count
count = count + 1
time.sleep(.1)
And this is the dataflow diagram I made:
I don't see anything outputted to the log or the PutFile. However, I do see the print statements appear in \nifi-0.6.1\logs\nifi-bootstrap.log. My knowledge of this is currently limited. I would appreciate answers from anyone who knows how to use the ExecuteScript processor, or even give me a better example than my current setup.
Given your script, I think everything is functioning as expected. The script is not producing any FlowFiles which is why nothing is moving from ExecuteScript to the other processors, and anything sent to system out is captured in the bootstrap.log so that is why the print statement ends up there.
Script executing with in ExecuteScript get access to a few standard objects:
In order to produce FlowFiles you would need call session.create() and take the resulting FlowFile and transfer it to REL_SUCCESS.
The best source of info on the scripting processors is Matt Burgess's blog, this page has some good background (uses Groovy):
http://funnifi.blogspot.com/2016/02/executescript-processor-hello-world.html
This one has a Jython example:
http://funnifi.blogspot.com/2016/03/executescript-json-to-json-revisited_14.html
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With