加入2对RDD而不进行改组

时间:2015-03-01 16:18:46

标签: java scala hadoop apache-spark

我有2个PairRDD:rddA是一个巨大的尺寸,而且rddB要小得多。我需要通过密钥加入它们,以便我可以进一步迭代对应于相同密钥的那些PairRDD的元素对。 PairRDD #joed方法似乎正是我所需要的,但我发现它涉及改组,从而导致将大量数据写入HDFS并频繁出现内存不足错误。有什么办法可以避免洗牌吗?

1 个答案:

答案 0 :(得分:1)

要减少混洗数据,必须在同一个集群节点上进行共存。

  • 控制数据源级别的分区和/或使用.partition运算符
  • 如果小RDD可以适合所有工作人员的内存,那么使用广播变量是更快的选择

一些帮助我的指示: