我有2个PairRDD:rddA很大,而rddB小得多。我需要通过密钥将它们加入,以便可以进一步遍历那些与同一密钥对应的PairRDD的元素对。 PairRDD#join方法似乎正是我需要的方法,但是我发现它涉及改组,从而导致将大量数据写入HDFS并经常发生内存不足错误。有什么办法可以避免改组吗?

最佳答案

为了减少混排,数据必须位于同一群集节点上。

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

  • 一些帮助我的指针:
  • Advanced Spark Training特别是在幻灯片12周围
  • 关于加入广播 map :Advanced Spark Features特别是幻灯片9-12
  • 10-07 12:14