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();
}
});
我正在尝试加入两个 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();
}
});