使用GetFile处理器将csv带入NiFi工作流程。我有一列由“ id”组成。每个id表示一个特定的字符串。大约有3个ID。例如,如果我的csv由
组成name,age,id
John,10,Y
Jake,55,N
Finn,23,C
我知道Y表示York,N表示Old,C表示Cat。我想要一个标题为“ nick”的新列,并为每个id都具有相应的昵称。
name,age,id,nick
John,10,Y,York
Jake,55,N,Old
Finn,23,C,Cat
最后,我想要一个带有多余列的CSV和每条记录的适当数据。使用Apache NiFi怎么可能。请给我有关必须使用的处理器以及必须更改的配置以完成此任务的建议。
答案 0 :(得分:2)
流量:
您可以使用ReplaceText或ReplaceTextWithMapping来实现。我是用ReplaceText做到的:
UpdateRecord将解析csv文件,添加新列并复制ID值:
创建一个CSVReader
并保留默认属性。创建一个CSVRecordSetWriter
并将模式访问策略设置为Schema Text
。将模式文本属性设置为
{
"type":"record",
"name":"foobar",
"namespace":"my.example",
"fields":[
{
"name":"name",
"type":"string"
},
{
"name":"age",
"type":"int"
},
{
"name":"id",
"type":"string"
},
{
"name":"nick",
"type":"string"
}
]
}
请注意,它具有新列。最后用映射替换原始值:
PS:我注意到您是新手,欢迎光临!您之前的任何问题都没有接受一个答案。如果他们解决了您的问题,请接受他们,因为这将帮助其他人找到解决方案。