我将获取csv文件(每天大约10-12个csv文件一次),并使用nifi,我们需要获取所有csv文件的行数。
我已经做到了 getfile-> counttext-> replacetext(在替换文本中,我用下面的值替换了它)
现在我将输出为12个文件,每个文件都有该文件的行数,现在如何在nifi中添加这些数字
样本输出文件 文件1:-40 档案2:-35 文件3:-55 在这里我需要得到一个文件,我的值应该是所有文件中所有数字的总和 例如:-130(根据上述数据)
答案 0 :(得分:1)
您可以使用getfile -> CountText -> ReplaceText -> mergeContent->QueryRecord
的组合通过运行简单的sql查询以流文件的形式获取所有计数的总和。
将replaceText处理器用作具有两个设置的mergeContent处理器后:
Minimum Number of Entries= <set this to minimum number of files you expect i.e. 10 or 12
Demarcator= Shift + Enter for newline character
为QueryReecord
处理器添加CSVREADER和CSVRECORDSETWRITE控制器服务。
您可以在两个控制器服务中的avro模式下将其用作“ schema.text”
{
"type": "record",
"name": "test",
"fields": [
{
"name": "cnt",
"type": "long"
}
]
}