У меня есть СДР следующим образом:
[(((1, 2), 1.0), (2, 3)),
(((1, 2), 1.0), (3, 4)),
(((1, 2), 3.0), (2, 5)),
(((2, 3), 1.0), (1, 2)),
(((2, 3), 1.0), (3, 4)),
(((2, 3), 'inf'), (2, 5)),
(((3, 4), 1.0), (1, 2)),
(((3, 4), 1.0), (2, 3)),
(((3, 4), -1.0), (2, 5)),
(((2, 5), 3.0), (1, 2)),
(((2, 5), 'inf'), (2, 3)),
(((2, 5), -1.0), (3, 4))]
Я хочу отфильтровать еще один СДР из этого СДР, который содержит только те пары ключ: значение, которые имеют общие ключи.То есть мой вывод RDD должен быть:
[(((1,2),1.0), (2,3)),
((1,2),1.0), (3,4)),
((2,3),1.0), (1,2)),
((2,3),1.0), (3,4)),
((3,4),1.0), (1,2)),
((3,4),1.0), (2,3)))]
Я попробовал следующий код -
rdd.countByKey()
, который вернул мне словарь, содержащий
defaultdict(int,
{((1, 2), 1.0): 2,
((1, 2), 3.0): 1,
((2, 3), 1.0): 2,
((2, 3), 'inf'): 1,
((3, 4), 1.0): 2,
((3, 4), -1.0): 1,
((2, 5), 3.0): 1,
((2, 5), 'inf'): 1,
((2, 5), -1.0): 1})
Я думал об итерации по этомусловарь в качестве моего следующего шага, чтобы я мог отфильтровать те элементы, которые имеют значения> 1 , но не смогли выполнить код.Может кто-нибудь помочь мне с решением этой проблемы?