我想使用NI-FI
将数据从源传输到目标。在NI-FI
中,我还想使用python脚本来屏蔽我的Data。所以有人建议我将输入的一行一行地传递给数据作为python中的参数。
所以我想知道我需要在我的python脚本中手动传递文件或每一行和每一列进行屏蔽。最好的方法是什么,如何获得它。
在NI-FI中,我也想使用python脚本屏蔽我的数据,但是Getfile Processor和python脚本指出了位于NI-FI的Input文件夹中的相同文件,所以可能是由于这个原因在执行流命令时出错。
用户@GMc要求的脚本下方:-
class ModJSON(StreamCallback):
def __init__(self):
pass
def process(self, inputStream, outputStream):
flowFile = session.get()
obj = {
"Source": "NiFi",
"IP": obj['IP'].replace(regex='((?<=[0-9])[0-9]|(?<=\.)[0-9])', value='X'),
"Name": obj['user']['screen_name']
}
在此脚本中,我要屏蔽来自GetFile处理器但文件在队列中的数据。
我想从源头获取数据并对其进行转换。
答案 0 :(得分:0)
已经有一段时间了,但是如果我没记错的话,NiFi的python界面为您提供了一个名为session的全局变量。
您使用会话对象获取流文件,并将输出向下传输到正确的下游路径(例如,成功)。
也许本教程会帮助您https://community.hortonworks.com/articles/35568/python-script-in-nifi.html
对于您对GetInputFile的引用(您是指GetFile处理器?)和python脚本,我有些困惑。通常,GetFile从文件系统获取文件。然后将其转换为NiFi中的内部机制,称为FlowFile。下游处理器(例如python脚本)从会话对象获取流文件,并对其进行处理,并可以选择通过session.transfer方法传输修改后的版本。