如何在Java中实现自定义Apache Spark Param / parammap?

时间:2019-02-01 16:00:34

标签: java apache-spark apache-spark-ml apache-spark-2.0

我想在 java 中使用自定义参数实现自定义火花分类器。由于我希望它与管道体系结构兼容,因此我想使用spark param / parammap来实现自己的其他参数。

到目前为止,我已经能够实现自定义的火花分类器,但是我还没有找到在Java中使用参数映射的正确方法。到目前为止,这是我从分类器类继承的,并建立了一个特定的分类器模型。现在,我希望分类器在参数映射中具有另一个参数,假设整数类型的参数“ n”的默认值为1。

最合适和最一致的方法是什么?如何定义它,是否需要考虑其他更改(例如在copy()方法中)以确保它与其他spark功能兼容?

public class CustomClassifierTemplate extends Classifier<Vector, CustomClassifierTemplate, CustomClassifierTemplate.CustomClassifierModelTemplate>{

    public class CustomClassifierModelTemplate extends ClassificationModel<Vector,CustomClassifierModelTemplate>{

        @Override
        public String uid() {
            // TODO Auto-generated method stub
            return null;
        }

        @Override
        public int numClasses() {
            // TODO Auto-generated method stub
            return 0;
        }

        @Override
        public Vector predictRaw(Vector arg0) {
            // TODO Auto-generated method stub
            return null;
        }

        @Override
        public CustomClassifierModelTemplate copy(ParamMap arg0) {
            // TODO Auto-generated method stub
            //Creates a copy of this instance with the same UID and some extra params.
            CustomClassifierModelTemplate m = new CustomClassifierModelTemplate();
            m.org$apache$spark$ml$param$Params$_setter_$org$apache$spark$ml$param$Params$$paramMap_$eq(arg0);
            return m;
        }   
}

    @Override
    public String uid() {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public CustomClassifierTemplate copy(ParamMap arg0) {
        // TODO Auto-generated method stub
        //Creates a copy of this instance with the same UID and some extra params.
        CustomClassifierTemplate c = new CustomClassifierTemplate();
        c.org$apache$spark$ml$param$Params$_setter_$org$apache$spark$ml$param$Params$$paramMap_$eq(arg0);
        return c;
    }

    @Override
    public CustomClassifierModelTemplate train(Dataset<?> arg0) {
        // TODO Auto-generated method stub
        return null;
    }
}

0 个答案:

没有答案