2016-12-21 5 views
1

私のpythonでexecutionScriptを使用していると私はそれは私のアイデアは良いデータを処理することで、いくつかの破損したデータを持っている、と私の成功に私のflowfileコンテンツに入れてデータセットを持っています私はそれをどのように行うことができます任意のアイデアをExecutionScript出力二つの異なるflowfiles NIFI

for msg in messages : 
    try : 
     id = msg['id'] 
     timestamp = msg['time'] 
     value_encoded = msg['data'] 
     hexFrameType = '0x'+value_encoded[0:2]   
     matches = re.match(regex,value_encoded) 
     .... 
    except: 
     error_catched.append(msg) 

     pass 

:関係や破損1が障害の関係でそれらをリダイレクトするには、私はこのような何かをやっていますか?私はあなたがsession.getから得られる「flowFile」と呼ばれ、着信フローファイルを持っていると仮定していますこの回答の目的のために

答えて

4

()。あなたは、単にflowFileの内容を検査して、発生したエラーに基づいて成功または失敗へのルート、それをしたい場合は、あなたの成功の道にあなたが使用することができます。

session.transfer(flowFile, REL_SUCCESS) 

そして、あなたが行うことができますあなたのエラーパスでの:

session.transfer(flowFile, REL_FAILURE) 

新しいファイルは、使用することができます(上記のあなたのループでは、単一の「MSG」を含む、おそらく1)欲しい代わり場合:

outputFlowFile = session.create(flowFile) 

は、入力フローファイルを使用して、新しいフローファイルを作成します親として新しいフローファイルに書き込みたい場合は、my blog postで説明PyStreamCallback技術を使用することができます。

新しいフローファイルを作成する場合は、上記のsession.transfer()を使用して(flowFileではなくoutputFlowFileを使用して)、最新のバージョンをREL_SUCCESSまたはREL_FAILUREに転送してください。また、着信フローファイルを削除する必要があります(子フローファイルを作成して転送したためです)。このためには使用することができます。

session.remove(flowFile) 
関連する問題