2016-07-20 4 views
-1

У меня 2 pairRdds, их кортежи определяются каксравнить между два pairRDD

Tuple2 <Integer,int[]> 

то, что я хочу сделать, это найти кортежи из оба РДА, которые имеют один и тот же ключ, чем сравнивать каждые одиночные элементы стоимости части (int []) из Ra с другими элементами из Rb, а не возвращать в result_RDD Res только кортежи, которые появляются как в rdds, одинаковые ключевые и одинаковые значения для каждого элемента второй части (int []), давая пример, предположим:

Ra={(1,(2,3)) (4,(9,2)) (5,(88,2)) (77,(6,1))...} 
    Rb={(1,(5,5)) (4,(9,2)) (9,(22,0)) (5,(88,2))..} 

    Res={(4,(9,2)) (5,(88,2))} 

я хочу вернуться тоже в RESult2_RDD, кортежи из Ра, которые появляются в обоих РД, но на этот раз, тот же ключ и другое значение (средства (ИНТ []) часть),

RESULT2_RDD= {(1,(2,3)) ...} 

помогите пожалуйста ....

ответ

3

Вы ищете intersection

val Res = Ra.intersection(Rb) 
+0

__Note : __ _intersection_ не будет дублировать результирующий RDD. – avr

+0

Я пробовал с набором данных hammad, но Res дает мне пустую паруRDD, подскажите, как это происходит? –

+0

@avr мне не нужны дубликаты, я проверю его и посмотрю, спасибо u all – hammad

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