2017-04-05 3 views
0

私はApache NifiでPythonを使用してコードを実行しようとしていますが、フローファイルをデータフローの次のプロセッサに渡す際に問題があります。Pythonでrunscriptがフローファイルを次のプロセッサに渡していません

スタンドアロンフローファイルの作成と書き込みスニペットを実行すると、それが機能し、次のプロセッサでフローファイルを読み取ることができます。しかし、それを豊かにしようとすると、フローファイルは渡されません。実際にはエラーは発生せず、何とか処理する方法がわかりません。私はPythonとnifiで少し新しく、この特定の問題についてあなたの助けに感謝します。

以下は私が使用しているコードです。非常に簡単です。私はちょうどいくつかのロジックを使用してフローファイルにいくつかの文字列を作成して書きたいと思う。しかし、運は、これまで

import urllib2 
import json 
import datetime 
import csv 
import time 
import sys 
import traceback 
from org.apache.nifi.processor.io import OutputStreamCallback 
from org.python.core.util import StringUtil 

class WriteContentCallback(OutputStreamCallback): 
    def __init__(self, content): 
     self.content_text = content 

    def process(self, outputStream): 
     try: 
      outputStream.write(StringUtil.toBytes(self.content_text)) 
     except: 
      traceback.print_exc(file=sys.stdout) 
      raise 

page_id = "dsssssss" 

access_token = "sdfsdfsf%sdfsdf" 

def scrapeFacebookPageFeedStatus(page_id, access_token): 
     flowFile = session.create() 
     flowFile = session.write(flowFile, WriteContentCallback("Hello there this is my data")) 
     flowFile = session.write() 
     session.transfer(flowFile, REL_SUCCESS)   
     print "\nDone!\n%s Statuses Processed in %s" % \ 
       (num_processed, datetime.datetime.now() - scrape_starttime) 


if __name__ == '__main__': 
    scrapeFacebookPageFeedStatus(page_id, access_token) 

答えて

1

私はこの問題は__main__ためのチェックであると信じていません:

if __name__ == '__main__': 
    scrapeFacebookPageFeedStatus(page_id, access_token) 

__builtin__

は私の実験では、実際のモジュール名でした。別のテストパスを保持したい場合は、そのチェックを削除するか、別のチェックを追加することができます。

+0

多くのありがとう@ジェームス。出来た。 – omer

関連する問題