use of com.alibaba.alink.operator.stream.dataproc.MinMaxScalerPredictStreamOp in project Alink by alibaba.
the class MinMaxTest method test.
@Test
public void test() throws Exception {
BatchOperator batchData = new TableSourceBatchOp(GenerateData.getBatchTable());
StreamOperator streamData = new TableSourceStreamOp(GenerateData.getStreamTable());
MinMaxScalerTrainBatchOp op = new MinMaxScalerTrainBatchOp().setSelectedCols("f0", "f1").linkFrom(batchData);
new MinMaxScalerPredictBatchOp().linkFrom(op, batchData).lazyCollect();
new MinMaxScalerPredictStreamOp(op).linkFrom(streamData).print();
MinMaxScalerModel model = new MinMaxScaler().setSelectedCols("f0", "f1").setOutputCols("f0_1", "f1_1").fit(batchData);
List<Row> rows = model.transform(batchData).collect();
rows.sort(new Comparator<Row>() {
@Override
public int compare(Row o1, Row o2) {
if (o1.getField(0) == null) {
return -1;
}
if (o2.getField(0) == null) {
return 1;
}
if ((double) o1.getField(0) > (double) o2.getField(0)) {
return 1;
}
if ((double) o1.getField(0) < (double) o2.getField(0)) {
return -1;
}
return 0;
}
});
assertEquals(rows.get(0), Row.of(null, null, null, null));
assertEquals(rows.get(1), Row.of(-1., -3., 0., 0.));
assertEquals(rows.get(2), Row.of(1., 2., 0.4, 1.));
assertEquals(rows.get(3), Row.of(4., 2., 1., 1.));
model.transform(streamData).print();
StreamOperator.execute();
}
Aggregations