【问题标题】:Euclidean distance calculation using apache flink使用 apache flink 计算欧几里得距离
【发布时间】:2017-09-06 07:20:05
【问题描述】:

Apache flink 具有计算欧几里得距离的设置库。我想使用相同的 API 在 n 维空间上进行距离计算。我有两个具有 3 个特征的数据集。

a = {0.1,0.3,0.8} b = {0.2,0.4,0.7}

如何使用 apache flink 计算这两个向量之间的距离。

【问题讨论】:

    标签: java apache-flink euclidean-distance


    【解决方案1】:

    这应该可以解决问题

    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计算距离。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-01-31
      • 2015-09-23
      • 1970-01-01
      • 2017-07-07
      • 2013-04-07
      • 2020-11-29
      • 2018-02-14
      相关资源
      最近更新 更多