【问题标题】:How to Get the Largest Key of each Spark Partition?如何获取每个 Spark 分区的最大密钥?
【发布时间】:2016-12-07 23:52:21
【问题描述】:

如果我们使用.reduce(max),那么我们将得到整个RDD中最大的key。我知道这个 reduce 将在所有分区上运行,然后减少每个分区发送的那些项目。但是我们如何才能取回每个分区的最大键呢?为.mapPartitions()写一个函数?

【问题讨论】:

    标签: apache-spark pyspark apache-spark-sql spark-streaming


    【解决方案1】:

    你可以:

    rdd.mapParitions(iter => Iterator(iter.reduce(Math.max)))
    

    rdd.mapPartitions(lambda iter: [max(iter)])
    

    在流式传输中使用 DStream.trasform

    【讨论】:

    • 谢谢,我还有一个问题。如果有 3 个最大的 key 并且它们彼此相等,那么 rdd.mapPartitions(lambda iter: [max(iter)]) 只能取回 1,那么我们如何才能将这 3 个最大的 key 放在一起呢?
    猜你喜欢
    • 1970-01-01
    • 2018-09-17
    • 2014-07-15
    • 1970-01-01
    • 2016-08-29
    • 2018-02-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多