【问题标题】:NiFi convert json to csv using ConvertRecordNiFi 使用 ConvertRecord 将 json 转换为 csv
【发布时间】:2018-05-29 06:25:06
【问题描述】:

我在 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 个字段...

【问题讨论】:

  • 你说的是动态的。那么字段名称会改变吗?
  • @sivaprasanna-sethuraman 不,我有 11 个字段。一条记录可能包含 7 个字段,下一条记录可能包含 11 个字段和接下来的 9 个字段...

标签: json csv apache-nifi


【解决方案1】:

下面提供的步骤将帮助您完成这项工作。:

  • 将生成/输出 JSON 文件的源处理器连接到 ConvertRecord
  • 配置ConvertRecord 并设置'Record Reader' 使用JsonTreeReader 控制器服务和'Record Writer' 使用CSVRecordSetWriter 控制器服务
  • 配置两个控制器服务并将Schema Registry属性设置为使用AvroSchemaRegistry
  • 配置AvroSchemaRegistry。转到“属性”标签,然后点击 + 按钮,您可以添加动态属性。
  • 提供一些属性名称(例如:mySchema)并为值提供输入 JSON 所需的 Avro 架构。 (您可以使用InferAvroSchema 处理器为您的 JSON 生成 Avro 架构)
  • 同时配置JsonTreeReaderCsvRecordSetWriter 并将“架构名称”属性设置为上面提供的名称,在本例中为mySchema
  • 根据您的需要将ConvertRecord 的关系连接到下游处理器。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-06-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多