spark-Java : 显示加入RDD

Spark-Java : Display join RDD

我正在尝试加入两个 pairRDD,如下所示,而

lat1 : K,V -> k-integer , V- Double lat2 : K,V -> k-integer , V- Double

   JavaPairRDD<Integer,Tuple2<Double,Double>> latlong = lat.join(long);

我假设新的 RDD 是 K,[V1,V2] 并且我想显示新的 RDD

还有如果我想做基于值的操作,怎么实现

请在Spark中提出建议-Java Api

P.s:我看到很多答案都在 scala 中,但我的要求是在 JAVa

中实现

来自 Spark 文档:

When join called on datasets of type (K, V) and (K, W), returns a dataset of (K, (V, W)) pairs with all pairs of elements for each key.

所以你的假设是对的:

JavaPairRDD<Integer,Tuple2<Double,Double>> latlong = lat.join(long);

当您需要使用 JavaPairRDD 中的值时,您可以使用 #mapValues() 方法:

Pass each value in the key-value pair RDD through a map function without changing the keys; this also retains the original RDD's partitioning.

为了显示 JavaPairRDD 您可以使用与平常相同的输出方法 e。 G。 #saveAsTextFile()


当您需要将 (K, (V, W)) 中的值映射到其他类似 (K,V-W) 的值时,您可以使用提到的 mapValues() 转换:

JavaPairRDD<Integer, String> pairs = latlong.mapValues(
        new Function<Tuple2<Double, Double>, String>() {
          @Override
          public String call(Tuple2<Double, Double> value) throws Exception {
            return value._1() + "-" + value._2();
          }
        });