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个最大的键组合在一起呢?