我有两个不同密钥的RDD:
RDD1: (K1, V1)
RDD2: (K2, V2)
我有一个函数可以处理来自V2
的数据,然后映射K2
和K1
。结果是一个新的RDD,RDD3: (K1, V2_transformed)
。我的最终结果基于RDD1
的{{1}}和V1
RDD3
按键的某些操作。
在我看来,V2_transformed
以与RDD3
相同的方式分发是有益的,以避免之后成本高昂的加入。有没有办法先验地指定我希望RDD1
分发与RDD3
相同?
我使用PySpark。
答案 0 :(得分:3)
您可以使用rdd.partitionBy(new HashPartitioner(numpartitions))
,如果您对两个RDD使用相同的分区,那么您应该没问题。