Hem Python hem de Scala'da MurmurHash dizelerine ihtiyacım var. Ancak çok farklı sonuçlar veriyorlar. Scala'nın yerleşik MurmurHash3
kütüphanesi, çevrimiçi olanlar da dahil olmak üzere denediğim diğer kitaplıklar ile aynı sonuçları vermemektedir. Garip olan şey, tek bir karakterle eşleşiyor gibi görünüyor, ancak birden fazla karakter değil. İşte bazı örnekler:Scala MurmurHash3 kütüphanesi eşleşmiyor Python mmh3 library
Python:
mmh3.hash('string', 0)
res: -1390314837
Scala: Ben Java imzaladı biliyorum ve C uygulaması piton sarma olduğu gibi imzalı ve imzasız ints ile oynarken denedi
MurmurHash3.stringHash("string", 0)
res: 379569354
imzasız kullanarak. Ancak, işaretli bir aralığa dönüştürmek için NumPy'yi kullanmamız bile bize yardımcı olmaz. Burada gidiyor olabilir ne
http://murmurhash.shorelabs.com/
Herhangi bir fikir: Bu site piton uygulanması yaramış?
Yani, eğer sorun buysa, 'string'i python'da utf-16'ya çevirmek, Scala ile aynı sonucu döndürmez mi? Python: 'string'.encode ('UTF-16')' – patrickbarker
@patrickbarker - Sadece Python başka bir veriyi paketlemezse ve bunları birleştirirken MSB düzenindeki karakterleri (şort) paketlerse, Scala uygulaması yapar. –