从 Spark RDDPair 值中删除重复项

Removing duplicates from Spark RDDPair values

我是 Python 的新手,也是 Spark 的新手。 我有一对包含 (key, List) 的 RDD,但有些值是重复的。 RDD 的形式为 (zipCode,streets) 我想要一对不包含重复项的 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()))

上面一个不行

我会这样做:

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

元组上的 distinct 并不像你说的那样起作用,所以按元组对你的列表进行分组,最后只得到第一个元素。

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