我有CSV(管道分隔)内容的流文件,我正在转换为JSON。为了便于以后的处理,我希望所有JSON属性都是字符串值。我如何配置CSVReader或jsonrecordsetwwriter始终输出字符串?
推断模式根据它看到的值做出类型决策。CSV文件来自具有不同字段的不同来源,因此我尽量避免枚举所有可能的模式。(如果我这样做,我可以指定类型"string")有没有办法说所有属性都应该是字符串?
摘要:具有模式访问策略"推断模式"的CSVReader可以创建具有数字类型的模式。具有模式访问策略的CSVReader "使用头中的字符串字段"创建一个所有字段都是字符串字段的架构。无论哪种情况,字段名都来自第一行。
文档文档位于CSVReader属性表,Schema Access Strategy行。
对于"Infer Schema",将鼠标指针悬停在其(?)图标上显示
读取数据时自动推断数据的Schema。看到……"额外Details"有关如何推断模式的信息。
对于"使用标题中的字符串字段",将鼠标指针悬停在其(?)图标上显示
CSV文件的第一个非注释行是一个头行,其中包含列。模式将通过使用标题和中的列名来派生假设所有列名都是String类型。
验证(使用Nifi 1.16.3):
输入文件
id|version|date|time|timestamp|phase
123456|12.0|2019-12-28|23:58|2019-12-28T23:58:57.000Z|alpha
123465|12.1|2019-12-29|23:59|2019-12-29T23:59:58.000Z|beta
流动GetFile成功→ConvertRecord成功→PutFile成功→LogAttribute
ConvertRecord属性