如何在JavaPairRDD中查找密钥位于JavaRDD中的所有元组

时间:2016-08-15 22:46:20

标签: java join apache-spark rdd

我有以下rdds

JavaPairRDD<String, MyObject> myObjects = //implemented elsewhere
JavaRDD<String> myKeys = //implemented elsewhere

我想在myObjects中找到所有元组,以便元组的键出现在myKeys中。我能想到的唯一方法是将myKeys转换为JavaPairRDD,然后加入myKeys和myObject。所以,像这样:

JavaPairRDD<String, Integer> myKeysPair = myKeys.mapToPair(t -> new Tuple2<>(t, 0));
JavaRDD<MyObject> myFinalObjects = myObjects.
    join(myKeysPair).mapToPair(t -> t._2).map(t->t._1);

这看起来效率不高,我想知道是否有更好的方式来获得我想要的东西。

我正在使用Spark 1.5.2和Java 8

0 个答案:

没有答案