使用 Apache NiFi 将 CSV 文件转换为 JSON
Convert a CSV file to JSON using Apache NiFi
我正在尝试从本地文件系统读取 csv 并使用 Apache Nifi 将内容转换为 JSON 格式,然后将 JSON 格式文件放入本地系统。我已经成功转换了 csv 文件的第一行,但没有转换其他行。我错过了什么?
输入:
1,aaa,loc1
2,bbb,loc2
3,ccc,loc3
我的 nifi 工作流程如下:
http://www.filedropper.com/mycsvtojson
我的输出如下所示,这是所需的格式,但我希望所有行都出现这种情况。
{ "id" : "1", "name" : "aaa",
"location" : "loc1" }
有几种不同的方法可以做到这一点...
- 自定义 Java 处理器读取 CSV 并转换为 JSON
- 使用 ExecuteScript 处理器在 Groovy/Jython 脚本中做类似的事情
- 使用 SplitText 将您的原始 CSV 拆分为单行,然后使用您当前的 ExtractText 和 ReplaceText 方法,然后使用 MergeContent 合并回来
- 先使用 ConvertCsvToAvro,然后使用 ConvertAvroToJson
虽然最后一个选项会额外转换为 Avro,但它可能是最简单的解决方案,几乎不需要任何工作。
这个问题有点老了,但是现在 NiFi 1.3 和更新版本中有一个 ConvertRecord 处理器,它应该能够直接为您处理这个转换,并且它避免了通过创建一个包含所有值的单个 JSON 数组,如果需要的话。
我正在尝试从本地文件系统读取 csv 并使用 Apache Nifi 将内容转换为 JSON 格式,然后将 JSON 格式文件放入本地系统。我已经成功转换了 csv 文件的第一行,但没有转换其他行。我错过了什么?
输入:
1,aaa,loc1
2,bbb,loc2
3,ccc,loc3
我的 nifi 工作流程如下: http://www.filedropper.com/mycsvtojson
我的输出如下所示,这是所需的格式,但我希望所有行都出现这种情况。
{ "id" : "1", "name" : "aaa",
"location" : "loc1" }
有几种不同的方法可以做到这一点...
- 自定义 Java 处理器读取 CSV 并转换为 JSON
- 使用 ExecuteScript 处理器在 Groovy/Jython 脚本中做类似的事情
- 使用 SplitText 将您的原始 CSV 拆分为单行,然后使用您当前的 ExtractText 和 ReplaceText 方法,然后使用 MergeContent 合并回来
- 先使用 ConvertCsvToAvro,然后使用 ConvertAvroToJson
虽然最后一个选项会额外转换为 Avro,但它可能是最简单的解决方案,几乎不需要任何工作。
这个问题有点老了,但是现在 NiFi 1.3 和更新版本中有一个 ConvertRecord 处理器,它应该能够直接为您处理这个转换,并且它避免了通过创建一个包含所有值的单个 JSON 数组,如果需要的话。