2015-06-16 6 views
0

Я новичок в Python, а также в Spark. У меня есть пара RDD, содержащая (ключ, список), но некоторые из значений дублируются. RDD имеет форму (zipCode, улицы) Я хочу пару RDD, которая не содержит дубликатов. Я пытаюсь достичь этого с помощью python. Может ли кто-нибудь помочь в этом.Удаление дубликатов из значений Spark RDDPair

(ZipCode, улицы)

streetsGroupedByZipCode = zipCodeStreetsPairTuple.groupByKey() 
dayGroupedHosts.take(2) 

[(123456, <pyspark.resultiterable.ResultIterable at 0xb00518ec>), 
(523900, <pyspark.resultiterable.ResultIterable at 0xb005192c>)] 

zipToUniqueStreets = streetsGroupedByZipCode.map(lambda (x,y):(x,y.distinct())) 

Над одной не работает

ответ

0

Я хотел бы сделать что-то вроде этого:

streetsGroupedByZipCode.map(x => (x._1, x._2.groupBy(_._2).map(_._2.head))) 

отчетливое на кортеж не работает, как вы сказал, поэтому группируйте свой список по кортежу и получите только первый элемент в конце.

val data = Seq((1, Seq((1, 1), (2, 2), (2, 2))), (10, Seq((1, 1), (1, 1), (3, 3))), (10, Seq((1, 2), (2, 4), (1, 2)))) 

дает:

(10,Map(1 -> 1, 3 -> 3)) 
(1,Map(2 -> 2, 1 -> 1)) 
(10,Map(1 -> 2, 2 -> 4)) 
+0

это скорее вопрос кортежей, как они трактуются здесь: http://stackoverflow.com/questions/3912753/scala-remove-duplicates-in-list-of- объекты – Seb

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