hash - 如何在 presto 中将字符串散列到 bigint?

标签 hash presto varbinary trino

我有一个很长的字符串,我想将它半唯一地表示为一个 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/

相关文章:

apache-kafka - Dataproc 中的 Presto : configure a Kafka catalog

php - Laravel varbinary(ip) 在不工作的地方使用

php - 如何在 PHP PDO for MySQL 中使用 VARBINARY 准备语句?

java - 身份验证方法

java - Athena 从 parquet 模式创建表

MySQL 转换为大写不起作用

performance - Impala 上的多维数据集运算符

sql - 在这里使用 varbinary 比 varchar 有什么优势?

hash - 如何处理相同的散列与相同的 key ?

image - 这些校验和图像的含义是什么以及它们的用途是什么?