2017-09-06 22 views
0

아파치 플 링크는 유클리드 거리를 계산하기위한 설정 라이브러리를 가지고 있습니다. 나는 n 차원 공간에서 거리 계산을 위해 동일한 API를 사용하고 싶다. 나는 3 개의 특징을 가진 2 개의 데이터 세트를 가지고있다.아파치 플 링크를 사용한 유클리드 거리 계산

A = {} 0.1,0.3,0.8 B = 양쪽이 아파치 FLINK를 사용하여 벡터 사이의 거리 I를 계산할 수있는 방법

{} 0.2,0.4,0.7

.

답변

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 

을 수행해야합니다.