Skip to content

Instantly share code, notes, and snippets.

@ijokarumawak
Last active June 17, 2024 11:08
Show Gist options
  • Save ijokarumawak/1df6d34cd1b2861eb6b7432ee7245ccd to your computer and use it in GitHub Desktop.
Save ijokarumawak/1df6d34cd1b2861eb6b7432ee7245ccd to your computer and use it in GitHub Desktop.
Example Python script to use from NiFi ExecuteScript processor which reads the first line from an incoming flow file.
from org.apache.nifi.processors.script import ExecuteScript
from org.apache.nifi.processor.io import InputStreamCallback
from java.io import BufferedReader, InputStreamReader
class ReadFirstLine(InputStreamCallback) :
__line = None;
def __init__(self) :
pass
def getLine(self) :
return self.__line
def process(self, input) :
try :
reader = InputStreamReader(input)
bufferedReader = BufferedReader(reader)
self.__line = bufferedReader.readLine()
except :
print "Exception in Reader:"
print '-' * 60
traceback.print_exc(file=sys.stdout)
print '-' * 60
raise
finally :
if bufferedReader is not None :
bufferedReader.close()
if reader is not None :
reader.close()
flowFile = session.get()
if flowFile is not None :
reader = ReadFirstLine()
session.read(flowFile, reader)
flowFile = session.putAttribute(flowFile, "from-content", reader.getLine())
session.transfer(flowFile, ExecuteScript.REL_SUCCESS)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment