从Spark RDDPair值中删除重复项

时间:2015-06-16 08:05:38

标签: python apache-spark pyspark

我是Python和Spark的新手。 我有一对RDD包含(key,List),但有些值是重复的。 RDD的形式(zipCode,街道) 我想要一对RDD,它不包含重复项。 我试图使用python实现它。 任何人都可以请你帮忙。

(邮政编码,街道)

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()))

上面一个不起作用

1 个答案:

答案 0 :(得分: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))