我有一个很长的字符串,我想将它半唯一地表示为一个 bigint。理想情况下,我只需要散列,但是 presto hash functions似乎想返回“varbinary”,但我找不到将 varbinary 转换为 bigint 的函数。
如果我写:cast(xxhash64(cast('asdf' as varbinary)) as bigint)
我收到一条错误消息,说我无法将 varbinary 转换为 bigint。
最佳答案
您可以使用 from_big_endian_64
将 64 位二进制值转换为 bigint
:
presto> SELECT from_big_endian_64(xxhash64(CAST('asdf' AS varbinary)));
_col0
---------------------
4708639809588864798
(1 row)
关于hash - 如何在 presto 中将字符串散列到 bigint?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64014918/