在询问问题时,在csv文件中向BigQuery发送电子商务信息时出现了问题。在csv中,ORDER_DATE列的值应该进入BigQuery中的DATETIME类型列中的yyyy-MM-dd HH:mm:ss格式,试图在BigQuery上找到一些引用。
环境
Attempt1
将替换值策略选择为文字值,并将/ORDER_DATE添加为新字段。其价值如下:
${field.value:toDate('yyyyMMddhhmmss','GMT'):format('yyyy-MM-dd hh:mm:ss', 'GMT')}症状如下:

Attempt2
找到了一个新的引用,即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:用于输入字符串:"2022-01-08 15:22:17“
有什么想法吗?谢谢您:)
发布于 2022-01-18 14:45:16
在不增加上游UpdateRecord的情况下,使用ValidateCSV解决了该问题。
在控制器服务中,CSVReader和CSVRecordSetWriter被修改如下:
User String Fields From Header
CSVReader的属性Schema Access Strategy更改为将所有属性更改为处理器CSVReader的默认值
以下是测试结果:
GenerateFlowFile,将以下文本更改为yyyyMMddHmmss格式,将其转换为csv 
UpdateRecord 中修改

CSVRecordSetWriter离开默认设置并设置CSVReader,如下所示:
的情况下转换值。

搜索以查看错误日志中的文件并找到原因。它似乎被推断为类型字符串,但它是类型浮点数,从而导致上述错误。
感谢您的评论。@VikramsinhShinde @Sdair
https://stackoverflow.com/questions/70738476
复制相似问题