繁体   English   中英

Spark示例Java 7到Java 8

[英]Spark example Java 7 to Java 8

我正在阅读用Java 7编写的Apache Spark示例。例如,此代码:

public final class JavaKMeans {

  private static class ParsePoint implements Function<String, Vector> {
    private static final Pattern SPACE = Pattern.compile(" ");

    @Override
    public Vector call(String line) {
      String[] tok = SPACE.split(line);
      double[] point = new double[tok.length];
      for (int i = 0; i < tok.length; ++i) {
        point[i] = Double.parseDouble(tok[i]);
      }
      return Vectors.dense(point);
    }
  }

  ...
  JavaRDD<Vector> points = lines.map(new ParsePoint());
  ...
}

如何使用Java 8重写此调用方法?

您可以按如下所示对其进行重构(未测试):

public final class JavaKMeans {
  private static final Pattern SPACE = Pattern.compile(" ");

  private Vector call(String line) {
    double[] point = SPACE.splitAsStream(line)
                        .mapToDouble(Double::parseDouble)
                        .toArray();
    return Vectors.dense(point);
  }

  ...
  JavaRDD<Vector> points = lines.map(this::call);
  ...
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM