我如何使用Scala的murmur哈希实现:scala.util.MurmurHash3?(How

2019-09-16 09:26发布

我正在写一个布隆过滤器,并希望使用Scala的默认MurmurHash3实现:scala.util.MurmurHash3。 我的编译与以下编译错误失败然而:

[error] /mnt/hgfs/dr/sandbox/dr-commons/src/main/scala/dr/commons/collection/BloomFilter.scala:214: MurmurHash3 is not a member of scala.util
[error]   import scala.util.{MurmurHash3 => MH}

我使用Scala的2.9.1和SBT 0.11.2。

是MurmurHash3类不在2.9.1库默认? 我想这是因为它使用了很多在库中。 该班是不是包专用,据我看到的。

Answer 1:

这就是所谓的刚scala.util.MurmurHash无3.但它的确是murmur哈希算法3(见源代码中的注释 )

编辑我刚刚看到雷克斯科尔scala.util.MurmurHash的作者。 我劝你不要接受这个答案(假设它是正确的); 因为雷克斯克尔是在计算器上,他可以帮腔,给你一个更好的一个...



Answer 2:

我使用Scala的2.11和火花的Apache 1.6.2。 它的工作的罚款。 与这些版本我没有得到任何错误

import scala.util.hashing.{ MurmurHash3 => MH3 }
    val data="I am SANTHOSH"
    val sample = MH3.stringHash(data, MH3.stringSeed)
    println(":Hash Value: "+sample)
<dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-core_2.11</artifactId>
            <version>1.6.2</version>
        </dependency>
        <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-sql_2.11</artifactId>
            <version>1.6.2</version>
        </dependency>
        <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-mllib_2.11</artifactId>
            <version>1.6.2</version>
        </dependency>


Answer 3:

对我来说,以下工作:

import scala.util.hashing.MurmurHash3



文章来源: How can I use Scala's MurmurHash implementation: scala.util.MurmurHash3?