python中的executioncript没有将流文件传递给下一个处理器

时间:2017-04-05 07:55:41

标签: python apache-nifi

我正在尝试使用python在Apache Nifi中运行executioncript进程,但是在我的数据流中将流文件传递给下一个处理器时遇到了问题。

如果我运行独立的流文件创建和编写代码片段它可以工作,我可以在下一个处理器中读取流文件,但是当我尝试丰富它时,它根本不传递流文件。事实上,没有产生错误,不知怎的,我不知道如何继续。我对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 个答案:

答案 0 :(得分:1)

我认为问题在于检查__main__

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

__builtin__是我实验中的实际模块名称。如果要保留单独的测试路径,可以删除该检查,也可以添加其他检查。