Apache NiFi:UpdateRecord 处理器返回 java.lang.NumberFormatException 错误
Apache NiFi: UpdateRecord processor retunrs java.lang.NumberFormatException error
请教一个问题,在将电子商务信息以csv 文件形式发送到BigQuery 时出现问题。在csv中,ORDER_DATE
列的值应该进入BigQuery中DATETIME
类型列中的yyyy-MM-dd HH:mm:ss
格式,试图在Google上找到一些参考。
环境
- Docker
上的 Apache NiFi 1.14.0
尝试 1
替换值策略被选择为文字值,/ORDER_DATE
被添加为新字段。取值如下:
${field.value:toDate('yyyyMMddhhmmss','GMT'):format('yyyy-MM-dd hh:mm:ss', 'GMT')}
症状如下:
尝试 2
找到新的参考资料,发现NiFi表达式有误,所以换了个方法:
${field.value:equals('0'):ifElse('', ${field.value:replace(${field.value},${field.value:toDate('yyyyMMddHHmmss'):format('yyyy-MM-dd HH:mm:ss'):toString()})})}
同样的症状如下:
有人让我打开日志,查了一下是这样的:
java.lang.NumberFormatException: For input string: "2022-01-08 15:22:17"
有什么想法吗?谢谢:)
使用 UpdateRecord
解决了问题而不添加到上游 ValidateCSV
。
控制器服务中,CSVReader
和CSVRecordSetWriter
修改如下:
- 已将处理器
CSVReader
的 属性 Schema Access Strategy
更改为 User String Fields From Header
- 将所有属性更改为处理器的默认值
CSVRecordSetWriter
测试结果如下:
在GenerateFlowFile
中将下面的文字改为格式yyyyMMddHmmss
被制作成csv
待修改的NiFi表达式UpdateRecord
CSVRecordSetWriter
保留默认设置并设置 CSVReader
如下
完成以上设置后,可能会转换值不报错
在错误日志中搜索查看文件,找到了原因。好像推断的是string类型,结果是float类型,导致上面的错误。
感谢您的评论。 @VikramsinhShinde @Sdairs
请教一个问题,在将电子商务信息以csv 文件形式发送到BigQuery 时出现问题。在csv中,ORDER_DATE
列的值应该进入BigQuery中DATETIME
类型列中的yyyy-MM-dd HH:mm:ss
格式,试图在Google上找到一些参考。
环境
- Docker 上的 Apache NiFi 1.14.0
尝试 1
替换值策略被选择为文字值,/ORDER_DATE
被添加为新字段。取值如下:
${field.value:toDate('yyyyMMddhhmmss','GMT'):format('yyyy-MM-dd hh:mm:ss', 'GMT')}
症状如下:
尝试 2
找到新的参考资料,发现NiFi表达式有误,所以换了个方法:
${field.value:equals('0'):ifElse('', ${field.value:replace(${field.value},${field.value:toDate('yyyyMMddHHmmss'):format('yyyy-MM-dd HH:mm:ss'):toString()})})}
同样的症状如下:
有人让我打开日志,查了一下是这样的:
java.lang.NumberFormatException: For input string: "2022-01-08 15:22:17"
有什么想法吗?谢谢:)
使用 UpdateRecord
解决了问题而不添加到上游 ValidateCSV
。
控制器服务中,CSVReader
和CSVRecordSetWriter
修改如下:
- 已将处理器
CSVReader
的 属性Schema Access Strategy
更改为User String Fields From Header
- 将所有属性更改为处理器的默认值
CSVRecordSetWriter
测试结果如下:
在
GenerateFlowFile
中将下面的文字改为格式yyyyMMddHmmss
被制作成csv待修改的NiFi表达式
UpdateRecord
CSVRecordSetWriter
保留默认设置并设置CSVReader
如下完成以上设置后,可能会转换值不报错
在错误日志中搜索查看文件,找到了原因。好像推断的是string类型,结果是float类型,导致上面的错误。
感谢您的评论。 @VikramsinhShinde @Sdairs