我正在写一个布隆过滤器,并希望使用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库默认? 我想这是因为它使用了很多在库中。 该班是不是包专用,据我看到的。
这就是所谓的刚scala.util.MurmurHash无3.但它的确是murmur哈希算法3(见源代码中的注释 )
编辑我刚刚看到雷克斯科尔scala.util.MurmurHash的作者。 我劝你不要接受这个答案(假设它是正确的); 因为雷克斯克尔是在计算器上,他可以帮腔,给你一个更好的一个...
我使用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>
对我来说,以下工作:
import scala.util.hashing.MurmurHash3