我是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()))
上面一个不起作用
答案 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))