1. 程式人生 > >【NIFI】 Apache NiFI 之 ExecuteScript處理器

【NIFI】 Apache NiFI 之 ExecuteScript處理器

   本例介紹NiFI ExecuteScript處理器的使用,使用的指令碼引擎ECMScript

 

 ExecuteScript-Demo

  1、頁面如下圖

  

  2、GenerateFlowFile

    

  2、ExecuteScript

    

    指令碼內容:

 1 var InputStreamCallback =  Java.type("org.apache.nifi.processor.io.InputStreamCallback");
 2 var OutputStreamCallback =  Java.type("org.apache.nifi.processor.io.OutputStreamCallback");
3 var IOUtils = Java.type("org.apache.commons.io.IOUtils"); 4 var StandardCharsets = Java.type("java.nio.charset.StandardCharsets"); 5 6 var flowFile = session.get(); 7 8 9 if(flowFile != null) { 10 11 try { 12 13 var text = ""; 14 15 // 讀取flowFile中內容 16 session.read(flowFile,new
InputStreamCallback(function(inputStream) { 17 var str = IOUtils.toString(inputStream, StandardCharsets.UTF_8); 18 19 20 //由JSON字串轉換為JSON物件 21 var obj = JSON.parse(str); 22 obj.age = 18 23 24 //將JSON物件轉化為JSON字元 25 text = JSON.stringify(obj);
26 27 })); 28 29 // 向flowFile中寫入內容 30 flowFile = session.write(flowFile, new OutputStreamCallback(function(outputStream) { 31 32 outputStream.write(text.getBytes(StandardCharsets.UTF_8)) 33 34 })); 35 36 session.transfer(flowFile, REL_SUCCESS) 37 38 } catch(e) { 39 log.error('Something went wrong', e) 40 session.transfer(flowFile, REL_FAILURE) 41 } 42 43 }

  3、PutFile

    

    輸出檔案內容:{"id":1,"name":"god","age":18}

  

  其他指令碼引擎,參考以下地址 

  參考文件連結:https://community.hortonworks.com/articles/75032/executescript-cookbook-part-1.html