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

时间:2018-04-25 14:52:18

标签: presto amazon-athena

我希望在类似的部分上通过varchar列在Amazon Athena数据库中拆分数据。如果我可以将varchar转换为integer,我会使用 some_hash_function(data) mod n。但Athena的哈希函数返回varbinary,并且无法转换为integer

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

2 个答案:

答案 0 :(得分:2)

您可以使用from_big_endian_64功能将8字节varbinary转换为bigint。这是一个完整的例子:

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

答案 1 :(得分:2)

通常,Dain的答案是正确的,但有一点点评论:由于substrvarchar作为第一个参数,但sha256返回varbinary代码将失败

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

from_big_endian_64(xxhash64(to_utf8(user_id)))