2016-06-20 36 views
1

ローカルファイルシステムからcsvを読み込み、Apache Nifiを使用してコンテンツをJSON形式に変換し、JSON形式ファイルをローカルシステムに配置しようとしています。私はcsvファイルの最初の行を変換することに成功しましたが、他の行は変換しませんでした。私は何が欠けていますか?Apache NiFiを使用してCSVファイルをJSONに変換する

入力: 1,aaa,loc1 2,bbb,loc2 3,ccc,loc3

と私のnifiワークフローにはここにある:それ以下が要求されるよう http://www.filedropper.com/mycsvtojson

私の出力は形式ですが、私はそれがすべての行のために起こるしたいです。

{ "id" : "1", "name" : "aaa", "location" : "loc1" }

答えて

7

これを行うことができ、いくつかの異なる方法があります...

  • CSVを読み込んで、JSON
  • 行うにExecuteScriptプロセッサを使用するに変換し、カスタムのJavaプロセッサGroovy/Jythonスクリプトで同様のもの
  • SplitTextを使用してオリジナルのCSVを1行に分割し、現在の方法をExtractTextとReplaceTextで使用し、次にMergeContentを再び結合する
  • 使用ConvertCsvToAvro、その後ConvertAvroToJson

最後のオプションは、アブロに余分な変換を行いますが、それはほとんどの作業を必要とする最も簡単な解決策になるかもしれません。

+0

SplitTextを使ってみましたが、うまくいきました...そして、ConvertCsvToAvroを使用する方が便利です。 –

1

この質問は少し古くなっていますが、Nivert 1.3以降ではこの変換が直接処理できるはずのConvertRecordプロセッサがあります。これは、データを分割して使用する必要がなくなりますそれが望ましい場合は、すべての値を含むJSON配列

関連する問題