从 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))
我是 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))