alink

alink调用的两种模式

第一种直接调用对象本书

直接定义创建对象,fit数据,然后生成模型

public static void main(String[] args) throws Exception {
        Row[] data = new Row[]{
                Row.of(new Object[]{0.0,0.0,0.0}),
                Row.of(new Object[]{0.1,0.2,0.1}),
                Row.of(new Object[]{0.2,0.2,0.8}),
                Row.of(new Object[]{9.0,9.5,9.7}),
                Row.of(new Object[]{9.1,9.1,9.6}),
                Row.of(new Object[]{9.2,9.3,9.9})
        };

        String[] colnames = new String[] {"a","b","c"};
        MemSourceBatchOp inOp = new MemSourceBatchOp(Arrays.asList(data), colnames);

        PCA pca = new PCA();

        pca.setK(2).setSelectedCols("a","b","c").setPredictionCol("o");

        pca.fit(inOp).transform(inOp).print();
    }

第二种模式,BatchOperator对象,可以通过link的方式直接将所有的Operator连在一起

public static void main(String[] args){
        Row[] students = new Row[20];

        for(int i=0;i<20;i++){

            students[i] = Row.of( new Object[]{JSON.toJSONString(new Student(String.valueOf(i),i))});

        }

        String[] colnames = new String[] {"col1"};
        MemSourceBatchOp inOp = new MemSourceBatchOp(Arrays.asList(students), colnames);
        List<Row> result = inOp.link(new JsonValueBatchOp()
                .setSkipFailed(true)
                .setSelectedCol("col1").setOutputCols(new String[] {"name", "age"})
                .setJsonPath(new String[] {"$.name", "$.age"})).collect();

        for(Row r:result){
            System.out.println(r.toString());
        }
    }

    public static class Student{
        private String name;
        private Integer age;

        public Student(String name,Integer age){
            this.name = name;
            this.age = age;
        }


        public String getName() {
            return name;
        }

        public Integer getAge() {
            return age;
        }
    }

猜你喜欢

转载自www.cnblogs.com/yangyang12138/p/12578945.html
今日推荐