0

私は、Jaro winklerやCosine Similarityのような文字列の類似度計算を行うためにデータセットをトラバースしようとしています。私は自分のデータセットを行のリストに変換し、それを効率的に実行する方法ではないfor文をトラバースします。ですから、私はSparkのよりよいアプローチを楽しみにしています。Spark Javaでデータセットをトラバース/反復する方法は?

public class sample { 

    public static void main(String[] args) { 
     JavaSparkContext sc = new JavaSparkContext(new SparkConf().setAppName("Example").setMaster("local[*]")); 
     SQLContext sqlContext = new SQLContext(sc); 
     SparkSession spark = SparkSession.builder().appName("JavaTokenizerExample").getOrCreate(); 

     List<Row> data = Arrays.asList(RowFactory.create("Mysore","Mysuru"), 
       RowFactory.create("Name","FirstName")); 
     StructType schema = new StructType(
       new StructField[] { new StructField("Word1", DataTypes.StringType, true, Metadata.empty()), 
         new StructField("Word2", DataTypes.StringType, true, Metadata.empty()) }); 

     Dataset<Row> oldDF = spark.createDataFrame(data, schema); 
     oldDF.show(); 
     List<Row> rowslist = oldDF.collectAsList(); 
    } 
} 

多くのJavaRDDの例がわかりません。データセットの例は私を大いに助けます。

+0

「foreach」と記載されているドキュメントのセクションがありますか? https://spark.apache.org/docs/latest/programming-guide.html#actionsまたはJavaDocを読むのに気をつけますか? https://spark.apache.org/docs/latest/api/java/index.html –

答えて

8

org.apache.spark.api.java.function.ForeachFunctionは以下のように使用できます。

oldDF.foreach((ForeachFunction<Row>) row -> System.out.println(row)); 
関連する問題