1

我正在尝试从本地文件系统读取 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" }

4

2 回答 2

7

有几种不同的方法可以做到这一点......

  • 读取 CSV 并转换为 JSON 的自定义 Java 处理器
  • 使用 ExecuteScript 处理器在 Groovy/Jython 脚本中执行类似的操作
  • 使用 SplitText 将您的原始 CSV 拆分为单行,然后将您当前的方法与 ExtractText 和 ReplaceText 一起使用,然后使用 MergeContent 重新合并在一起
  • 使用 ConvertCsvToAvro,然后使用 ConvertAvroToJson

尽管最后一个选项对 Avro 进行了额外的转换,但它可能是最简单的解决方案,几乎不需要任何工作。

于 2016-06-20T21:55:24.583 回答
2

这个问题有点老了,但现在 NiFi 1.3 和更新版本中有一个 ConvertRecord 处理器,它应该能够直接为你处理这个转换,并且它避免了通过创建一个包含所有内容的 JSON 数组来拆分数据的值,如果这是可取的。

于 2017-10-04T14:58:15.173 回答