2014-11-20 3 views
0

у меня есть два Spark, РД со следующих значениямиКак соединить два РДА с взаимоисключающими ключами

x = [(1, 3), (2, 4)] 

и

y = [(3, 5), (4, 7)] 

, и я хочу, чтобы иметь

z = [(1, 3), (2, 4), (3, 5), (4, 7)] 

Как я могу достичь этого. Я знаю, что вы можете использовать externalJoin, а затем карту, чтобы достичь этого, но есть ли более прямой путь для этого.

ответ

6

rdd.union(otherRDD) дает объединение двух РДУ, как ожидается, в этом вопросе

x.union(y)

0

Вы можете просто использовать оператор +. В контексте списков это операция конкатенации.

>>> x = [(1, 3), (2, 4)] 
>>> y = [(3, 5), (4, 7)] 
>>> z = x + y 
>>> z 
[(1, 3), (2, 4), (3, 5), (4, 7)] 
+1

ли эту работу в Спарк? – MetallicPriest

+0

В чем преимущество использования '+' над 'extend()'? – IanAuld

+1

@IanAuld 'extend' изменит список на месте,' + 'создаст и вернет новый список. – CoryKramer

Смежные вопросы