у меня есть Спарк RDD, который выглядит следующим образом:Спарк РДД удалить записи с несколькими ключами
[(1, ...),
(1, ...),
(2, ...),
(3, ...)]
И я пытаюсь удалить записи, которые имеют дубликаты ключей, в данном случае, я хочу, чтобы исключить все записи с ключом «1». И в конечном итоге выход я хочу должен выглядеть
[(2, ...),
(3, ...)]
То, что я пытался до сих пор, он работал, но моя кишка говорит, что должно быть лучшим решением:
>> a = sc.parallelize([(1,[1,1]), (1,[1,1]), (2,[1,1]), (3,[1,1])])
>> print a.groupByKey() \
.filter(lambda x: len(x[1])==1) \
.map(lambda x: (x[0], list(x[1])[0])).collect()
[(2, [1, 1]), (3, [1, 1])]
Может кто-нибудь помочь мне в этом?
Не могли бы вы либо принять ответ или объяснить, почему это не работает, так что может быть лучше? Спасибо заранее :) – zero323
Кроме того, если вы можете взглянуть на это http://stackoverflow.com/q/33157978/1560062 Если вы не найдете ответ полезным, я просто удалю. – zero323