繁体   English   中英

Spark-Java:显示加入RDD

[英]Spark-Java : Display join RDD

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

lat1:K,V-> k整数,V-双重lat2:K,V-> k整数,V-双重

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

假设新的RDD为K,[V1,V2],我想显示新的RDD

而且如果我想基于价值进行操作,执行方法是什么

请在Spark-Java Api中提出建议

附:我已经在scala中看到了很多答案,但是我的要求是在JAVa中实现

从Spark文档:

在对(K,V)和(K,W)类型的数据集进行join调用时,返回(K,(V,W))对的数据集,其中每个键都有所有成对的元素。

因此,您对以下假设是正确的:

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

当你需要在价值观工作JavaPairRDD ,你可以使用#mapValues()方法:

通过映射函数传递键-值对RDD中的每个值,而无需更改键; 这也保留了原始RDD的分区。

为了显示JavaPairRDD您可以使用与通常相同的输出方法,例如#saveAsTextFile()


当您需要将(K, (V, W))值映射到(K,VW)类的其他值时(K,VW)可以使用上述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();
          }
        });

暂无
暂无

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

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