如何在Spark Java中遍历/迭代数据集?

时间:2017-03-13 06:09:02

标签: java apache-spark iterator apache-spark-2.0 apache-spark-dataset

我试图遍历数据集以进行一些字符串相似度计算,如Jaro winkler或Cosine Similarity。我将我的数据集转换为行列表,然后遍历for语句,这不是有效的火花方式。所以我期待在Spark中采用更好的方法。

var app = angular.module("myCurriform", []);


    app.controller("standardCtrl", function($scope,$http,$filter,$location,$window) {


      $scope.search = function() {
        console.log($scope.count_time);



      };


    });

我发现了许多我不清楚的JavaRDD示例。数据集的一个例子对我有很大帮助。

2 个答案:

答案 0 :(得分:19)

您可以使用下面的org.apache.spark.api.java.function.ForeachFunction

oldDF.foreach((ForeachFunction<Row>) row -> System.out.println(row));

答案 1 :(得分:0)

对于不支持lambda表达式的旧Java jdks,可以在导入后使用以下内容:

  

导入org.apache.spark.api.java.function.VoidFunction;

yourDataSet.toJavaRDD().foreach(new VoidFunction<Row>() {
        public void call(Row r) throws Exception {
            System.out.println(r.getAs("your column name here"));
        }
    });