2016-12-24 3 views
1

csvファイルデータをjsonオブジェクトに変換するカスタムプロセッサーを使用しています。Apache Nifi - ファイル属性を取得し、カスタムプロセッサーを使用してjsonを構築します。

私の要件は、filename、uuid、pathなどのファイル属性を取得し、これらからjsonを構築することです。

質問:

は、どのように私は、ファイルの関連属性を取得し、前に構築さばかり同じJSONにそれを追加するJSONオブジェクトを構築することができます。

ちょうどapache nifiで作業していましたので、カスタムプロセッサで正確な要件を満たしています。

答えて

4

あなたのカスタムプロセッサ用に書かれている属性はわかりませんが、ファイル名とuuidのようにほとんどの/すべてのフローファイルにあるcore attributesのセットがあります。 GetFileまたはListFile/FetchFileを使用してCSVファイルを読み込んでいる場合は、それらのファイルと他の多くの属性を使用できます(詳細はdocを参照)。

適切な属性が設定されているフローファイルがある場合は、AttributesToJSONプロセッサを使用して、指定された属性のフラットなリストを含むJSONオブジェクトを作成できます。そのオブジェクトは、フローファイルの内容を置き換えるか、 AttributesToJSONの "Destination"プロパティの設定に応じて( 'JSONAttributes'という名前の)属性を追加します。

+0

確かに、GetFileプロセッサを使用してCSVファイルを取得しています。また、デフォルトのファイル属性(使用しているカスタムプロセッサにもありますが、私はFlowfileを使用しています)を絶対に頼りにしています。 apiのメソッドとコアを定義する[org.apache.nifi.flowfile.attributes.CoreAttributes](http://docs.hortonworks.com/HDPDocuments/HDF1/HDF-1.2/bk_DeveloperGuide/content/flowfile.html)enumすべてのFlowFileの属性。何が必要だったのかを知っている。 – Ranjan

関連する問題