/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.wayang.basic.operators;
import org.apache.wayang.basic.data.Tuple2;
import org.apache.wayang.core.api.Configuration;
import org.apache.wayang.core.optimizer.cardinality.CardinalityEstimator;
import org.apache.wayang.core.plan.wayangplan.UnaryToUnaryOperator;
import org.apache.wayang.core.types.DataSetType;
import java.util.Optional;
public class KMeansOperator extends UnaryToUnaryOperator<double[], Tuple2<double[], Integer>> {
// TODO other parameters
protected int k;
public KMeansOperator(int k) {
super(DataSetType.createDefaultUnchecked(double[].class),
DataSetType.createDefaultUnchecked(Tuple2.class),
false);
this.k = k;
}
public KMeansOperator(KMeansOperator that) {
super(that);
this.k = that.k;
}
public int getK() {
return k;
}
// TODO support fit and transform
@Override
public Optional<CardinalityEstimator> createCardinalityEstimator(int outputIndex, Configuration configuration) {
// TODO
return super.createCardinalityEstimator(outputIndex, configuration);
}
}
support fit and transform
https://github.com/apache/incubator-wayang/blob/897797899866f373f93e5672b36d5e34611faece/wayang-commons/wayang-basic/src/main/java/org/apache/wayang/basic/operators/KMeansOperator.java#L49
ce3bd2058f392a74234f683fb354e2a2cc52b8f0