通过 varchar 列拆分 Amazon Athena / Presto 中的数据



我想通过类似部分varchar列拆分 Amazon Athena 数据库中的数据。如果我能varchar转换为integer我会只使用some_hash_function(data) mod n.但是雅典娜的哈希函数返回varbinary并且不能转换为integer

那么,是否有可能用另一种方式解决这个问题呢?

您可以使用from_big_endian_64函数将 8 字节varbinary转换为bigint。 下面是一个完整的示例:

select from_big_endian_64(substr(sha256(to_utf8('test')), 1, 8));

一般来说,Dain 的答案是正确的,但有一点评论:因为substrvarchar作为第一个参数,但sha256返回varbinary该代码将失败。

这是一个可行的替代方案:

from_big_endian_64(xxhash64(to_utf8(user_id)))

相关内容

  • 没有找到相关文章