我的每个流文件都包含 2000 条记录。我想将 01/01/2000 解析为列年 = 2000,列月 = Jan 和列日 = 01
即输入列 01/01/2000 分成 3 个以逗号分隔的值 01,Jan,2000
假设您有一个这样的架构,供一个生日的人使用,并且您想拆分生日:
{
"name": "person",
"namespace": "nifi",
"type": "record",
"fields": [
{ "name": "first_name", "type": "string" },
{ "name": "last_name", "type": "string" },
{ "name": "birthday", "type": "string" }
]
}
Run Code Online (Sandbox Code Playgroud)
您需要修改架构,使其具有您要添加的字段:
{
"name": "person",
"namespace": "nifi",
"type": "record",
"fields": [
{ "name": "first_name", "type": "string" },
{ "name": "last_name", "type": "string" },
{ "name": "birthday", "type": "string" },
{ "name": "birthday_year", "type": ["null", "string"] },
{ "name": "birthday_month", "type": ["null", "string"] },
{ "name": "birthday_day", "type": ["null", "string"] }
]
}
Run Code Online (Sandbox Code Playgroud)
假设输入记录具有以下文本:
bryan,bende,1980-01-01
Run Code Online (Sandbox Code Playgroud)
我们可以将 UpdateRecord 与 CsvReader 和 CsvWriter 一起使用,UpdateRecord 可以通过解析原始生日字段来填充我们想要的三个字段。
如果我们将输出发送到 LogAttribute,我们现在应该看到以下内容:
first_name,last_name,birthday,birthday_year,birthday_month,birthday_day
bryan,bende,1980-01-01,1980,01,01
Run Code Online (Sandbox Code Playgroud)
以下是记录路径指南的链接,了解有关 toDate 和格式函数的详细信息:
https://nifi.apache.org/docs/nifi-docs/html/record-path-guide.html
归档时间: |
|
查看次数: |
2053 次 |
最近记录: |