1

我正在尝试复制 wso2 流处理器文档中给出的“进行实时预测”教程,该教程根据温度和密度预测货物是否符合要求

我正在使用文档中给出的预训练 PMML 文件 (Sweet.pmml)。

@App:name('SugerSyrupPredictionApp')

@source(type='http', receiver.url='http://0.0.0.0:5006/SugarSyrupEP', @map(type = 'json'))
define stream SugarSyrupDataStream (temperature double, density double);

@sink(type='log', prefix='Predicted next sugar syrup shipment:')
define stream PredictedSugarSyrupDataStream (nextTemperature double, nextDensity double, decision bool);

from SugarSyrupDataStream#pmml:predict("/home/user/Sweet.pmml", temperature, density)
select *
insert into PredictedSugarSyrupDataStream;

这是 Siddhi 显示的错误,即使代码符合文档。

与输出'定义流PredictedSugarSyrupDataStream'(温度加倍,密度加倍,...)相同的不同定义已存在为'@sink(type =“log”,prefix =“预测的下一个糖浆运输:”)定义流PredictedSugarSyrupStream(nextTemperature double, ..., 决策 bool)'

顺便说一句,欢迎页面选项卡 ( PmmlModelProcessor )上有一个示例示例,它使用相同的语法运行良好。

4

1 回答 1

0

当 2 个流具有相同的签名时,Siddhi 似乎很困惑;参数的数量和类型。

我通过添加“as”关键字将选定的列显式映射到目标流来解决这个问题。在您的情况下,它应该类似于以下内容:

select attr1 as nextTemperature, attr2 as nextDensity double, attr3 as decision bool
insert into PredictedSugarSyrupDataStream;
于 2020-11-29T00:01:23.540 回答