Apache spark 如何获得每个Spark分区的最大密钥?

Apache spark 如何获得每个Spark分区的最大密钥?,apache-spark,pyspark,apache-spark-sql,spark-streaming,Apache Spark,Pyspark,Apache Spark Sql,Spark Streaming,如果我们使用.reduce(max),那么我们将获得整个RDD中最大的密钥。我知道reduce将在所有分区上运行,然后减少每个分区发送的项目。但是我们怎样才能取回每个分区中最大的密钥呢?为.mapPartitions()?编写函数您可以: rdd.mapParitions(iter => Iterator(iter.reduce(Math.max))) 或 在流式处理中,将其与DStream.trasform一起使用,您可以: rdd.mapParitions(iter => It

如果我们使用
.reduce(max)
,那么我们将获得整个RDD中最大的密钥。我知道reduce将在所有分区上运行,然后减少每个分区发送的项目。但是我们怎样才能取回每个分区中最大的密钥呢?为
.mapPartitions()

编写函数您可以:

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

在流式处理中,将其与
DStream.trasform一起使用,您可以:

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


在流媒体中,将此与
DStream.trasform一起使用

谢谢,我还有一个问题。如果有3个最大的键,并且它们彼此相等,那么rdd.mapPartitions(lambda iter:[max(iter)])只能返回1,那么我们如何才能将这3个最大的键组合在一起?谢谢,我还有另一个问题。如果有3个最大的键,并且它们彼此相等,那么rdd.mapPartitions(lambda iter:[max(iter)])只能返回1,那么我们如何将这3个最大的键组合在一起呢?