NiFi使用ConvertRecord将json转换为csv

meh*_*meh 1 csv json apache-nifi

我在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"
}
Run Code Online (Sandbox Code Playgroud)

我不想使用replace或json评估; 我是怎么用ConvertRecord做的?使用这个处理器是如此奇怪和难以工作......

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

Siv*_*man 7

下面提供的步骤将帮助您完成此任务:

  • 连接生成/输出JSON文件的源处理器ConvertRecord.
  • 配置ConvertRecord并设置'Record Reader'以使用JsonTreeReader控制器服务和'Record Writer'来使用CSVRecordSetWriter控制器服务
  • 配置Schema Registry要使用的控制器服务和set 属性AvroSchemaRegistry
  • 配置AvroSchemaRegistry.转到"属性"选项卡,然后单击+按钮,可以添加动态属性.
  • 给出一些属性名称(例如mySchema:),并为该值提供输入JSON所需的Avro架构.(您可以使用InferAvroSchema处理器为您的JSON生成Avro架构)
  • 配置两者JsonTreeReader并将CsvRecordSetWriter"Schema Name"属性设置为上面提供的名称,在本例中为mySchema.
  • ConvertRecord根据需要连接下游处理器的关系.