2017-09-06 13 views
0

Apache flinkには、ユークリッド距離を計算するためのライブラリがあります。私は、n次元空間上の距離計算に同じAPIを使用したいと思います。私は3つの特徴を持つ2つのデータセットを持っています。Apacheクラウドを使用したユークリッド距離計算

= {0.1,0.3,0.8} B = {0.2,0.4,0.7}

はどのようにこの両者の距離は、Apache FLINKを用いてベクトル算出することができます。

答えて

0

これは私が距離を計算するためにorg.apache.commons.math3.ml.distance.EuclideanDistanceを使用トリックここ

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 

を行う必要があります。

関連する問題