NiFi 使用 ConvertRecord 将 json 转换为 csv

NiFi convert json to csv using ConvertRecord

我在 apache nifi 中有一个包含动态字段(最多 11 个字段)的 json 流,我想将其转换为 csv 文件。

样本json:

{  
   "field1":"some text",
   "field2":"some text",
   "field3":"some text",
   "field4":"some text",
   "field5":"some text",
   "field6":"some text",
   "field7":"some text"
}

我不想使用替换或 json 评估;我如何使用 ConvertRecord 做到这一点? 使用这个处理器是如此奇怪和难以工作...

关于动态字段的清晰表达: 我总共有 11 个字段。一条记录可能包含 7 个字段,下一条记录可能包含 11 个字段,接下来的 9 个字段...

下面提供的步骤将帮助您完成此操作。:

  • 将 generates/outputs JSON 文件的源处理器连接到 ConvertRecord
  • 配置ConvertRecord并设置'Record Reader'使用JsonTreeReader控制器服务,'Record Writer'使用CSVRecordSetWriter控制器服务
  • 配置控制器服务并设置 Schema Registry 属性 使用 AvroSchemaRegistry
  • 配置AvroSchemaRegistry。转到 'Properties' 选项卡并单击 + 按钮,您可以添加动态 属性.
  • 提供一些 属性 名称(例如:mySchema),对于值,提供您的输入所需的 Avro 模式 JSON。 (您可以使用 InferAvroSchema 处理器为您的 JSON 生成 Avro 模式)
  • 同时配置 JsonTreeReaderCsvRecordSetWriter 并将 'Schema Name' 属性 设置为上面提供的名称,在本例中为 mySchema.
  • 根据您的需要将 ConvertRecord 的关系连接到下游处理器。