我们可以强制火花从两个PairRDD中保存分区,在同一台机器上使用相同的密钥吗?

时间:2016-01-13 16:39:54

标签: java join apache-spark hdfs rdd

我正在使用Spark在HDFS集群之上。 在两个(键,值)PairRDD之间的Java Spark中的连接操作之前,我使用HashPartitioner对两个文件的数据进行分区,以在同一台机器上具有相同键的元素。这对每个文件都是独立的,但正如之前的帖子When create two different Spark Pair RDD with same key set, will Spark distribute partition with same key to the same machine?中所提到的,分区的RDD不一定位于同一位置,因此来自两个RDD的相同密钥可能不在同一台机器上。

有没有办法强制火花这样做?确保来自不同PairRDD的相同密钥位于同一台机器上

因为我们使用散列分区,所以对于两个RDD,相同的密钥在相同的分区号中,但保存分区的机器的顺序不同于一个RDD到另一个。

例如,如果我们有' N'机器,有没有办法将数字归因于每台机器(我猜火花在内部执行此操作), 然后简单地强制分区编号' P'要写在机器上&n; N模数P'?

0 个答案:

没有答案