我需要在 Python 和 Scala 中使用 MurmurHash 字符串。然而,他们给出了非常不同的结果。Scala 的内置MurmurHash3
库似乎没有提供与我尝试过的任何其他库(包括在线库)相同的结果。奇怪的是它似乎匹配单个字符而不是多个字符。这里有些例子:
Python:
mmh3.hash('string', 0)
res: -1390314837
斯卡拉:
MurmurHash3.stringHash("string", 0)
res: 379569354
我已经尝试过使用有符号和无符号整数,因为我知道 Java 已经签名并且 python 正在包装的 C 实现正在使用无符号。但即使使用 NumPy 转换为带符号的 int 也无济于事。这个网站似乎同意python实现:
http://murmurhash.shorelabs.com/
关于这里可能发生什么的任何想法?