Him*_*ege 2 data-processing apache-nifi
使用 GetFile 处理器将 csv 导入 NiFi 工作流程。我有一列由“id”组成。每个id代表一个特定的字符串。大约有3个id。例如,如果我的 csv 包含
name,age,id
John,10,Y
Jake,55,N
Finn,23,C
Run Code Online (Sandbox Code Playgroud)
我知道 Y 表示约克 (York),N 表示旧 (Old),C 表示猫 (Cat)。我想要一个新列,其标题名为“nick”,并且每个 id 都有相应的昵称。
name,age,id,nick
John,10,Y,York
Jake,55,N,Old
Finn,23,C,Cat
Run Code Online (Sandbox Code Playgroud)
最后,我想要一个带有额外列和每条记录的适当数据的 csv。使用 Apache NiFi 这怎么可能?请建议我必须使用的处理器以及必须更改的配置才能完成此任务。
流动:
您可以使用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"
}
]
}
Run Code Online (Sandbox Code Playgroud)
请注意,它有新列。最后用映射替换原始值:
PS:我注意到你是新来的,欢迎!您没有接受之前任何问题中的任何答案。如果它们解决了您的问题,请接受它们,因为这将帮助其他人找到解决方案。
| 归档时间: |
|
| 查看次数: |
4840 次 |
| 最近记录: |