【发布时间】:2019-01-01 15:06:02
【问题描述】:
我有一张大桌子JavaPairRDD<String, MySchema> RDD1,还有一张较小的JavaPairRDD<String, Double> RDD2。我想加入这两个RDD,我知道最好的方法是使RDD2成为广播变量,然后加入以减少洗牌。如何处理广播部分?我的意思是在广播之后,我会得到一个变量(A List,或 Set),它不再是一个 RDD。如何使用 RDD 加入广播变量?
// I ignored the parsing part, just simplified it as loading from the files.
JavaPairRDD<String, MySchema> RDD1 = sc.textFile ("path_to_small_dataset");
JavaPairRDD<String, Double> RDD2 = sc.textFile("path_to_large_dataset");
// Broadcast RDD2
Set<Tuple2<String, Double>> set2 = new HashSet<>();
set2.addAll(RDD2.collect());
// now I have set2 and RDD1, how can I join them?
【问题讨论】:
标签: apache-spark join rdd broadcast