2016-05-03 21 views
1

Apache NiFiでデフォルトのプロセッサReplaceTextを使用して、.dsvファイル内を検索し、すべての日時フォーマットと一致させて日付に変換しようとしています。しかし、プロセッサ自体を設定する方法はわかりません。私はこのような何かに(Valueプロパティを検索する)私の検索値を設定しようとしていますReplaceText Apache NiFiでの使用

(0{0,1}[1-9])|(1/d)|(2/d)|(3[0-1])/(0{0,1}[1-9])|(1[0-2])/([1-9]/d):(0{0,1}/d)|(1/d)|(2[0-4]):(0{0,1}/d)|([1-5]/d) 

私の交換値が一致したregex1 $ {時間:形式( "YYYY-MM-DD"")}であるのに対し私はまた、時間と呼ばれる別のプロパティを設定しました。(0{0,1}[1-9])|(1/d)|(2/d)|(3[0-1])/(0{0,1}[1-9])|(1[0-2])/([1-9]/d):(0{0,1}/d)|(1/d)|(2[0-4]):(0{0,1}/d)|([1-5]/d)

これは機能しません。私はReplaceTextを使用していないと感じています。手伝ってくれますか?

EDIT:

私は正規表現と呼ばれる置換方式は、テキスト全体を交換して、評価モード使用していますということが含まれている必要があります。

答えて

6

私は同様の質問が参考のために、Apacheのメーリングリストで答えたと信じて:

私はテンプレートを作成した[1]それはあなたが説明した日付変換を行う方法の一例を示しています。これはwiki [2]のメインテンプレートページからリンクされ、 "DateConversion.xml"という名前になっています。

まず、ExtractTextを使って日付文字列を見つけ、それを "date"という属性に抽出します。使用される正規表現は次のとおりです。(\ d {2} - \ d {2} - \ d {4} \ d {2}。\ d {2}。\ d {2})

ReplaceText上記の同じ正規表現の検索値を使用して、$ {date:toDate( "dd-MM-yyyy HH.mm.ss"):format( "yyyy-MM-dd HH:mm:ss + 0000" 「)}

[1] https://cwiki.apache.org/confluence/download/attachments/57904847/DateConversion.xml?version=2&modificationDate=1462288576652&api=v2

[2] https://cwiki.apache.org/confluence/display/NIFI/Example+Dataflow+Templates

+0

ブライアン、はい、私は、あまりにもNiFi malingListに質問を投稿あなたの応答の両方のためにあなたをとても感謝しています。私はあなたのテンプレートを試して、期待どおりに動作します。ありがとうございました!!! – paranza

関連する問題