1
我有两个RDDS使用不同的密钥:像Spark中现有的RDD一样分配新的RDD?
RDD1: (K1, V1)
RDD2: (K2, V2)
而且我有从V2
数据进行操作的功能,并且随后映射K2
和K1
。结果是一个新的RDD,RDD3: (K1, V2_transformed)
。我的最终结果是基于RDD1
的V1
和RDD3
的V2_transformed
的一些操作,通过密钥。
在我看来,如果RDD3
的分配方式与RDD1
的分配方式相同,这样可以避免以后的昂贵连接。有没有一种先验的方式指定我要RDD3
分配与RDD1
相同?
我使用PySpark。
由于我使用Python,我仍然可以将分区程序传递给'rdd.partitionBy'吗?是文档中提到的'portable_hash'('partitionBy(self,numPartitions,partitionFunc = portable_hash)')? – 2014-10-27 18:07:59
@Def_Os不知道从未使用python版本 – aaronman 2014-10-27 18:13:30
没有参数的'rdd.partitionBy'(选择默认值)对此很有效。 – 2015-03-30 00:16:31