繁体   English   中英

我怎样才能 hash 一个字符串到一个 bigint in presto?

[英]How can I hash a string to a bigint in presto?

我有一个很长的字符串,我想将它半唯一地表示为一个 bigint。 理想情况下,我只使用 hash,但是hash 函数似乎想要返回“varbinary”,而且我找不到 function 来将 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)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM