快上网专注成都网站设计 成都网站制作 成都网站建设
成都网站建设公司服务热线:028-86922220

网站建设知识

十年网站开发经验 + 多家企业客户 + 靠谱的建站团队

量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决

Spark的HashPartitioner方式的Python实现是这样的

这篇文章给大家介绍Spark的HashPartitioner方式的Python实现是这样的,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

桂平网站制作公司哪家好,找创新互联!从网页设计、网站建设、微信开发、APP开发、响应式网站设计等网站项目制作,到程序开发,运营维护。创新互联于2013年开始到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选创新互联

spark中的默认分区方式是org.apache.spark.HashPartitioner,具体代码如下所示:

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
}

如果想要在Python中获取一个key的分区,只需要实现hashCode,然后取模。

hashCode的实现方式如下:

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

验证

Scala实现

Spark的HashPartitioner方式的Python实现是这样的

Python实现

Spark的HashPartitioner方式的Python实现是这样的

关于Spark的HashPartitioner方式的Python实现是这样的就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。


本文名称:Spark的HashPartitioner方式的Python实现是这样的
网站URL:http://6mz.cn/article/ihocpg.html

其他资讯