用Nifi合并二个API、计算并生成新的API

简介:

1. 全景图

NewImage

NewImage

NewImage

 

2. 合并

根据attribute合并flowfile:

NewImage

 

合并 json, 并增加code,message等:

NewImage

 

3. 计算方差:

在ExecuteScript里只能用纯python, 很多第三方包都不能用;并把计算的值插入到json里,输出。

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
import  simplejson as json
#from scipy.stats  import  f_oneway
import  java.io
from org.apache.commons.io  import  IOUtils
from java.nio.charset  import  StandardCharsets
from org.apache.nifi.processor.io  import  StreamCallback
 
 
class  PyStreamCallback(StreamCallback):
   def __init__(self):
         pass
   def process(self, inputStream, outputStream):
     jsonData = IOUtils.toString(inputStream, StandardCharsets.UTF_8)
     data = json.loads(jsonData)
     values = [ float (i[ 'fltValue' ])  for  i in data[ "data" ]]
     firsts = [ float (i[ 'first' ])  for  i in data[ "data" ]]
     seconds = [ float (i[ 'second' ])  for  i in data[ "data" ]]
 
     def stdDeviation(a):
         count = len(a)
         if  count <  2 return  0
         avg = sum(a)/count
         result =  0.0
         for  i in a: result += (i - avg)** 2
         return  (result/(count -  1 ))** 0.5
 
 
     v = stdDeviation(values)
     f = stdDeviation(firsts)
     s = stdDeviation(seconds)
     
     data[ "valueDev" ] = v
     data[ "firstDev" ] = f
     data[ "secondDev" ] = s
               
     outputStream.write(bytearray(json.dumps(data, indent= 4 ).encode( 'utf-8' )))
 
flowFile = session.get()
if  (flowFile != None):
   flowFile = session.write(flowFile,PyStreamCallback())
   session.transfer(flowFile, REL_SUCCESS)

 

4. 最终效果:

第一个API:

NewImage

第二个API:

NewImage

 

最后合并生成的API:

NewImage

NewImage

可视化图:

NewImage

 

 

NIFI 中国社区 QQ群:595034369


本文转自疯吻IT博客园博客,原文链接:http://www.cnblogs.com/fengwenit/p/5823827.html,如需转载请自行联系原作者



目录
相关文章
|
3月前
|
SQL 并行计算 API
Dask是一个用于并行计算的Python库,它提供了类似于Pandas和NumPy的API,但能够在大型数据集上进行并行计算。
Dask是一个用于并行计算的Python库,它提供了类似于Pandas和NumPy的API,但能够在大型数据集上进行并行计算。
|
算法 Java API
浅谈日出日落的计算方法以及替代工具 - 日出日落 API
如果你想知道精确的日落日出时间,又或者你想设计一个日出日落时间查询的应用,又或者你只是好奇点进来了,还是可以过来围观一下涨涨知识,今天想跟大家聊一聊的是日出日落的计算方法以及替代工具 - 日出日落 API 。
721 0
|
资源调度 API 开发工具
在使用 SchedulerX 中的 SDK 进行 API 调用时,如果出现签名计算不对的错误
在使用 SchedulerX 中的 SDK 进行 API 调用时,如果出现签名计算不对的错误
210 1
|
测试技术 API PHP
php对接小鹅通API开发高级实战案例解析:小鹅通实战开发之合并用户user_id批量同步
php对接小鹅通API开发高级实战案例解析:小鹅通实战开发之合并用户user_id批量同步
247 0
|
定位技术 API
百度地图异步加载开发系列(7):计算两个坐标点距离的API
百度地图异步加载开发系列(7):计算两个坐标点距离的API
162 0
|
定位技术 API 容器
百度地图API开发:map.getDistance计算两点之间的距离(直线距离)
百度地图API开发:map.getDistance计算两点之间的距离(直线距离)
903 0
|
存储 传感器 编解码
微软行星云计算planet platform中的高分辨率影像通过API接入Google Earth Engine(GEE)
微软行星云计算planet platform中的高分辨率影像通过API接入Google Earth Engine(GEE)
406 0
微软行星云计算planet platform中的高分辨率影像通过API接入Google Earth Engine(GEE)
|
API
用节假日api计算两个日期之间的工作日天数
   最近遇到要求两个日期之间的工作日天数的问题,于是自己思考,进行了一下简单处理。主要是在循环处理上进行了精简。然后利用节假日api 直接输出了两个日期之间的工作日,并且做了一些扩展.可以利用参数获取两个日期之间的工作日和节假日情况     要想获取天数的话直接count一下返回的data数量即可 接口文档地址:http://tool.
8680 0
|
存储 JavaScript 前端开发
微软行星云计算Planetary Computer——从 STAC API 读取数据
微软行星云计算Planetary Computer——从 STAC API 读取数据
600 0
微软行星云计算Planetary Computer——从 STAC API 读取数据
|
Java API
高级JAVA开发必备技能:java8 新日期时间API((四)JSR-310:常用计算工具)(JAVA 小虚竹)
高级JAVA开发必备技能:java8 新日期时间API((四)JSR-310:常用计算工具)(JAVA 小虚竹)
175 0
高级JAVA开发必备技能:java8 新日期时间API((四)JSR-310:常用计算工具)(JAVA 小虚竹)

热门文章

最新文章