私はCSVファイルを取得するフローに取り組んでいます。私はレコードをCSVレコードの最初のフィールドに基づいて異なるディレクトリに入れたいと思っています。 EXのためにNiFi:ExtractTextの正規表現がデータの代わりにCSVヘッダを取得する
、CSVファイルには、私が最初のフィールドすなわち、国のフィールド値を取得したいこの
country,firstname,lastname,ssn,mob_num
US,xxxx,xxxxx,xxxxx,xxxx
UK,xxxx,xxxxx,xxxxx,xxxx
US,xxxx,xxxxx,xxxxx,xxxx
JP,xxxx,xxxxx,xxxxx,xxxx
JP,xxxx,xxxxx,xxxxx,xxxx
ようになります。これらのレコードを特定のディレクトリに入れます。米国の記録は米国のディレクトリに、英国の記録は英国のディレクトリに、などになります。
私は今持っている流れがある:
GetFile
---->SplitText
(行分割数= 1つの&ヘッダ行数= 1)---->ExtractText
(ライン=(+)。 )---->PutFile
(ディレクトリ= \ tmp \ data \ $ {行:getDelimitedField(1)})。私は別の目的のためにすべての分割ファイルに複製されるヘッダーファイルが必要です。だから私はそれらが必要です。
到着したCSVファイルは、ヘッダーが正常に複数のフローファイルに分割されます。しかし、私がExtractText
プロセッサで与えた正規表現は、レコードの代わりに分割されたフローファイルのCSVヘッダに対して評価します。だから、アメリカやイギリスを「行」属性にする代わりに、私はいつも「国」を取得します。したがって、すべてのファイルは\tmp\data\country
になります。これを解決する方法を教えてください。
で入手探している値を取得する必要がありますテンプレートを作成しました –