2016-12-07 3 views
1

の属性、私は次のことを行っている:使用FlowFileは、私は私のPythonスクリプトでflowfileの属性を取得しようとしているexecuteScript NIFIパイソン

class TransformCallback(StreamCallback): 

    def __init__(self): 
     pass 

    def process(self, inputStream, outputStream): 
     try: 
      # Read input FlowFile content 
      input_text = IOUtils.toString(inputStream, StandardCharsets.UTF_8) 
      input_obj = json.loads(input_text) 

が、どのように私はプロセスで私のflowfileの属性にアクセスすることができます方法 ?

答えて

2

FlowFileへの参照をTransformCallbackコンストラクタに渡すようなことをしない限り、processメソッドですぐには使用できません。別のオプションは、IOUtils.toString()を使用して一度にすべてを読み込むので、読み書きを分割して2つの別々の呼び出しに分割し、process()メソッドの外で属性操作を行うことができます。

ところで、コンテンツ全体を文字列として読み込むだけでStreamCallbackやInputStreamCallbackは必要ない場合は、Session.read(flowFile)を使用して、InputStreamを返します(提供されたコールバック)。 IOUtils.toString()をコールすると、そのコールバックを回避し、現在のFlowFileリファレンス(およびgetAttribute()またはgetAttributes()メソッドを使用してフローファイル属性へのアクセスを容易にすることができます)メソッド)。

+0

最初の解決策は私のために働くありがとう – azelix

関連する問題