0

在创建新的算子时,我们创建输入端口来接收数据和输出端口来传递数据。对于每个输入端口,我们将其数据类型固定为:

 exampleSetInput.addPrecondition (
     new ExampleSetPrecondition (
         exampleSetInput,
         Ontology.ATTRIBUTE_VALUE));

我们还定义了输出端口数据类型,如:

getTransformer().addPassThroughRule (
    exampleSetInput, exampleSetOutput);

此条件将生成与输入相同的输出数据类型和格式。我的问题是如何定义与输入无关的新输出格式和数据类型。例如输入格式有数字数据类型和四个属性,我希望输出数据是字符串类型并具有新的两个属性。

4

1 回答 1

0

好吧,我在快速矿工社区“如何扩展快速矿工”交付的文档中找到了解决方案。它包括在定义端口规则时在构造函数中使用以下函数:

getTransformer().addRule(new ExampleSetPassThroughRule(exampleSetInput, exampleSetOutPut,    SetRelation.SUBSET) {
        @Override
        public ExampleSetMetaData modifyExampleSet(ExampleSetMetaData metaData) throws UndefinedParameterError {
            metaData.removeAllAttributes();//This will remove all input attribtes
            metaData.addAttribute(new AttributeMetaData("item", Ontology.STRING));//here the creation of new attribute 

            return metaData;
        }
    });

您还可以根据需要修改输入属性名称或类型。

于 2013-02-24T05:23:24.547 回答