首先,我使用listFile处理器列出特定地图中的所有文件。然后,我想在NiFi中将$ {filename}的流文件追加到extern文件example.csv中。我考虑过在Python上使用ExecuteScript,但不知道如何使用。
我尝试了以下内容:
使用两个列表处理器,一个用于映射,另一个用于example.csv文件。 replaceText处理器将文本替换为${filename}
,mergeContent
和putFile(replace example.csv)
。仅在第一次工作。
答案 0 :(得分:1)
可以使用ExecuteScript处理器,在python中使用以下脚本
from org.apache.nifi.processors.script import ExecuteScript
import subprocess
flowFile = session.get()
if flowFile is not None:
myCsvRow = flowFile.getAttribute('filename')
fd = open('/path/to/your/map/files.csv','a')
fd.write(myCsvRow)
fd.close()
session.transfer(flowFile,ExecuteScript.REL_SUCCESS)