【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

猜你喜欢

转载自www.cnblogs.com/h--d/p/10111850.html