NiFi DeduplicateRecord处理器触发RecordPathException问题求助
检查RecordPath表达式语法
DeduplicateRecord处理器的Record Path字段必须严格遵循NiFi的RecordPath语法,直接写city是错误的,正确写法应为/city(表示根节点下的city字段)。如果省略根路径标识/,NiFi解析时会认为表达式为空令牌,触发行1列0的异常。你可以先在UpdateRecord或RecordPath Reader处理器中测试这个表达式,确认能正确定位目标字段。验证Record Schema配置
若GenerateRecord使用的是Inferred Schema,可能存在字段识别偏差(比如部分记录的city字段缺失/为null),导致RecordPath解析失败。建议手动指定JSON Schema,示例如下:{ "type": "record", "name": "TestCityRecord", "fields": [ {"name": "city", "type": "string"} ] }同时确保GenerateRecord生成的所有测试记录都包含
city字段,且字段类型与Schema定义一致。确认FlowFile内容格式
DeduplicateRecord默认处理换行分隔的JSON对象(NDJSON),如果GenerateRecord输出的是JSON数组(如[{"city":"Shanghai"},{"city":"Shanghai"}]),RecordPath无法直接定位到数组内的city字段,会引发解析异常。你可以用ViewContent查看FlowFile内容,若为数组格式,先通过SplitJson或ConvertRecord转成NDJSON格式再进行去重。核对Record Reader/Writer配置
确保DeduplicateRecord关联的Record Reader(如JsonTreeReader)和Record Writer(如JsonRecordSetWriter)配置正确:Reader的Schema Access Strategy需匹配你的Schema来源(比如Use Schema Text或Use Inferred Schema),且能正确识别city字段。避免使用自定义Reader时的额外配置干扰字段解析。
内容的提问来源于stack exchange,提问作者Artyom Rebrov

