簡體   English   中英

如何在Python中使用NiFi ExecuteScript處理器?

[英]How to use NiFi ExecuteScript processor with Python?

我在Apache NiFi中有一個非常基本的ExecuteScript處理器設置,帶有一個簡單的Python腳本(保存為.py文件),如下所示。 在處理器的屬性中,我將腳本引擎設置為python,將腳本文件設置為此腳本的路徑。

import time

count = 0

while(count < 20):
    print "The counter says: ", count
    count = count + 1
    time.sleep(.1)

這是我制作的數據流圖: nifi數據流

我沒有看到輸出到日志或PutFile的任何內容。 但是,我確實看到打印語句出現在\\ nifi-0.6.1 \\ logs \\ nifi-bootstrap.log中。 我對此的了解目前有限。 我很感激任何知道如何使用ExecuteScript處理器的人的答案,或者甚至比我當前的設置給出一個更好的例子。

鑒於您的腳本,我認為一切都按預期運行。 該腳本不生成任何FlowFiles,這就是為什么沒有任何東西從ExecuteScript移動到其他處理器,並且發送到系統的任何內容都在bootstrap.log中捕獲,這就是print語句結束的原因。

使用ExecuteScript執行的腳本可以訪問一些標准對象:

  • 會議
  • 上下文
  • 日志
  • REL_FAILURE
  • REL_SUCCESS

為了生成FlowFiles,您需要調用session.create()並獲取生成的FlowFile並將其傳輸到REL_SUCCESS。

腳本處理器的最佳信息來源是Matt Burgess的博客,這個頁面有一些很好的背景(使用Groovy):

http://funnifi.blogspot.com/2016/02/executescript-processor-hello-world.html

這個有一個Jython示例:

http://funnifi.blogspot.com/2016/03/executescript-json-to-json-revisited_14.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM