草庐IT

PairRDDs

全部标签

java - 加入 2 个 PairRDDs 而不洗牌

我有2个PairRDD:非常大的rddA和小得多的rddB。我需要按键连接它们,以便我可以进一步迭代对应于相同键的那些PairRDD的元素对。PairRDD#join方法似乎正是我所需要的,但我看到它涉及到混洗,从而导致向HDFS写入大量数据并经常出现内存不足错误。有没有办法避免洗牌? 最佳答案 为了减少混洗,数据必须位于相同的集群节点上。在数据源级别控制分区和/或使用.partition运算符如果小RDD可以装下所有worker的内存,那么使用广播变量是更快的选择一些对我有帮助的建议:AdvancedSparkTraining特别