【问题标题】:Removing duplicates from Spark RDDPair values从 Spark RDDPair 值中删除重复项
【发布时间】:2015-06-16 08:05:38
【问题描述】:

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

上面一个不起作用

【问题讨论】:

    标签: python apache-spark pyspark


    【解决方案1】:

    我会做这样的事情:

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

    【讨论】:

    猜你喜欢
    • 2016-05-31
    • 1970-01-01
    • 2016-10-01
    • 1970-01-01
    • 2016-09-24
    • 2018-04-25
    • 1970-01-01
    • 2019-06-11
    • 2021-01-05
    相关资源
    最近更新 更多