【问题标题】:How can I hash a string to a bigint in presto?如何将字符串散列到 presto 中的 bigint?
【发布时间】:2021-01-08 21:14:50
【问题描述】:

我有一个长字符串,我想将它半唯一地表示为一个 bigint。理想情况下,我只取哈希,但presto hash functions 似乎想要返回“varbinary”,我找不到将 varbinary 转换为 bigint 的函数。

如果我写:

cast(xxhash64(cast('asdf' as varbinary)) as bigint)

我收到一条错误消息,提示我无法将 varbinary 强制转换为 bigint。

【问题讨论】:

    标签: hash presto varbinary trino


    【解决方案1】:

    您可以使用 from_big_endian_64 将 64 位二进制值转换为 bigint

    presto> SELECT from_big_endian_64(xxhash64(CAST('asdf' AS varbinary)));
    
            _col0
    ---------------------
     4708639809588864798
    (1 row)
    

    【讨论】:

      猜你喜欢
      • 2021-09-18
      • 2012-05-09
      • 2017-02-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多