我如何配置一个NiFi模式转换所有属性到字符串时,从CSV转换到JSON?



我有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属性

<表类>tbody><<tr>记录读者CSVReader记录作家JsonRecordSetWriter

相关内容

  • 没有找到相关文章

最新更新