nifi + executioncript使用python

时间:2017-10-31 13:36:15

标签: python apache-nifi

嗨我需要获取csv文件中的行数而不是第一行是标题 我需要在一个属性中存储行数,并将流文件解析为未处理的下一个处理器

我正在考虑使用extracttext,但我不认为正则表达式可以做到这一点。

所以下一步将是一个executeScript处理器。 我想到了一个带有以下模板的python脚本

flowFile = session.get() 
if (flowFile != None):
# All processing code starts at this indent
attrMap = ['numberOflines': '1', 'myAttr2': Integer.toString(2)]
flowFile = session.get()
if(!flowFile) return
#Do something to get numbers of lines in the flow file
i =0;
    for line in flowfile
        i+=1

flowFile = session.putAttribute(flowFile, 'attribute_numberOfLines', i)
if errorOccurred:
    session.transfer(flowFile, REL_FAILURE)
else:
    session.transfer(flowFile, REL_SUCCESS)
最后

隐式返回

这不会运行

1 个答案:

答案 0 :(得分:4)

尝试将SplitText处理器的线路拆分计数设置为高于文件中可能的最大行数(例如1百万)的某个数字。如果希望总行数减去标题,也可以将标题行计数设置为1。您将获得相同的流文件,但使用包含行数的text.line.count属性。