像Spark中的现有RDD一样分发新的RDD?

时间:2014-10-27 16:41:40

标签: apache-spark

我有两个不同密钥的RDD:

RDD1: (K1, V1)
RDD2: (K2, V2)

我有一个函数可以处理来自V2的数据,然后映射K2K1。结果是一个新的RDD,RDD3: (K1, V2_transformed)。我的最终结果基于RDD1的{​​{1}}和V1 RDD3 按键的某些操作。

在我看来,V2_transformed以与RDD3相同的方式分发是有益的,以避免之后成本高昂的加入。有没有办法先验地指定我希望RDD1分发与RDD3相同?

我使用PySpark。

1 个答案:

答案 0 :(得分:3)

您可以使用rdd.partitionBy(new HashPartitioner(numpartitions)),如果您对两个RDD使用相同的分区,那么您应该没问题。