У меня есть два РДА с разными ключами:Распределите новый RDD как существующий RDD в Spark?
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)')? –
@Def_Os не уверен никогда не использовал версию python – aaronman
'rdd.partitionBy' без аргументов (выбор по умолчанию) отлично подходит для этого. –