Get the App
SLTechnology News&Howtos  ›  Servers  › 

The Python implementation of Spark's HashPartitioner way is like this

Shulou Source: shulou.com Published: 2022-06-01 01:46:44 10月23日 Update

This article introduces Spark's HashPartitioner way of Python implementation is like this, the content is very detailed, interested friends can refer to, hope to be helpful to you.

The default partition method in spark is org.apache.spark.HashPartitioner, and the specific code is as follows:

Class HashPartitioner (partitions: Int) extends Partitioner {require (partitions > = 0, s "Number of partitions ($partitions) cannot be negative.") Def numPartitions: Int = partitions def getPartition (key: Any): Int = key match {case null = > 0 case _ = > Utils.nonNegativeMod (key.hashCode, numPartitions)} override def equals (other: Any): Boolean = other match {case h: HashPartitioner = > h.numPartitions = numPartitions case _ = > false} override def hashCode: Int = numPartitions}

If you want to get a partition of key in Python, you just need to implement hashCode, and then take the module.

HashCode is implemented as follows:

Def java_string_hashcode (s): h = 0 for c in s: h = (31 * h + ord (c)) & 0xFFFFFFFF return ((h + 0x80000000) & 0xFFFFFFFF)-0x80000000

Verification

Scala implementation

Python implementation

On the HashPartitioner way of Spark Python implementation is so shared here, I hope the above content can be of some help to you, can learn more knowledge. If you think the article is good, you can share it for more people to see.

Tags: Way content more help good code interest guys buddies articles knowledge articles references verification Apple Docker Huawei Linux macOS MariaDB Microsoft MySQL NVidia OPPO Reno Apple Redmi Shulou Information vpn Shulou Tech Info