0
Apache flink有設置庫來計算歐幾里德距離。我想在n維空間上使用相同的API來進行距離計算。我有兩個包含3個特徵的數據集。使用apache flink的歐幾里德距離計算
一個= {0.1,0.3,0.8} B = {0.2,0.4,0.7}
如何可以計算的距離之間的兩個矢量此使用Apache弗林克。
Apache flink有設置庫來計算歐幾里德距離。我想在n維空間上使用相同的API來進行距離計算。我有兩個包含3個特徵的數據集。使用apache flink的歐幾里德距離計算
一個= {0.1,0.3,0.8} B = {0.2,0.4,0.7}
如何可以計算的距離之間的兩個矢量此使用Apache弗林克。
這應該做的伎倆
final ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment();
final DataSet<double[]> a = env.fromElements(new double[]{0.1, 0.3, 0.8});
final DataSet<double[]> b = env.fromElements(new double[]{0.2, 0.4, 0.7});
a.cross(b).map(new MapFunction<Tuple2<double[],double[]>, Double>() {
final EuclideanDistance distance = new EuclideanDistance();
@Override
public Double map(Tuple2<double[], double[]> value) throws Exception {
return distance.compute(value.f0, value.f1);
}
})
.print(); // start execution and output result to STDOUT
在這裏,我用org.apache.commons.math3.ml.distance.EuclideanDistance
計算距離。