此错误通常是由于将非数字的字符串转换为数字时引起的。确保输入的字符串只包含数字,并在转换之前进行验证。例如,在处理CSV文件时,您可以添加一个验证器以检查数字列是否仅包含数字:
{
"type": "record",
"name": "CSVRecord",
"namespace": "org.apache.nifi.processors.avro",
"fields": [
{"name":"field1","type":"string"},
{"name":"field2","type":["null","string"]},
{
"name":"field3",
"type":["null","string"],
"validate":{
"type":"regex",
"args":{"regex":"\\d+"}
}
}
]
}
该验证器将field3
列限制为仅包含数字,并将在转换为数字之前验证每行输入。如果在转换期间出现错误,则该行将被标记为无效,并将被传递到Failure流程中。