首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Apache NiFi: UpdateRecord处理器重发java.lang.NumberFormatException错误

Apache NiFi: UpdateRecord处理器重发java.lang.NumberFormatException错误
EN

Stack Overflow用户
提问于 2022-01-17 08:34:24
回答 1查看 236关注 0票数 2

在询问问题时,在csv文件中向BigQuery发送电子商务信息时出现了问题。在csv中,ORDER_DATE列的值应该进入BigQuery中的DATETIME类型列中的yyyy-MM-dd HH:mm:ss格式,试图在BigQuery上找到一些引用。

环境

  • Apache NiFi 1.14.0 on

Attempt1

替换值策略选择为文字值,并将/ORDER_DATE添加为新字段。其价值如下:

代码语言:javascript
复制
${field.value:toDate('yyyyMMddhhmmss','GMT'):format('yyyy-MM-dd hh:mm:ss', 'GMT')}

症状如下:

Attempt2

找到了一个新的引用,即NiFi表达式是错误的,所以我做了另一种方法:

代码语言:javascript
复制
${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:用于输入字符串:"2022-01-08 15:22:17“

有什么想法吗?谢谢您:)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-01-18 14:45:16

在不增加上游UpdateRecord的情况下,使用ValidateCSV解决了该问题。

在控制器服务中,CSVReaderCSVRecordSetWriter被修改如下:

User String Fields From Header

  • Changed

  • 将处理器CSVReader的属性Schema Access Strategy更改为将所有属性更改为处理器CSVReader的默认值

以下是测试结果:

  • In GenerateFlowFile,将以下文本更改为yyyyMMddHmmss格式,将其转换为csv

  • NiFi表达式将在UpdateRecord

中修改

  • CSVRecordSetWriter离开默认设置并设置CSVReader,如下所示:

  • 在完成上述设置后,可以在没有错误

的情况下转换值。

搜索以查看错误日志中的文件并找到原因。它似乎被推断为类型字符串,但它是类型浮点数,从而导致上述错误。

感谢您的评论。@VikramsinhShinde @Sdair

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70738476

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档