Hive使用哪种哈希算法进行分区?

问题描述 投票:0回答:1

我需要了解Hive用于哈希分区数据的算法。例如,Spark使用Murmur Hashing。有任何想法或资源吗?

hash hive partitioning hive-partitions
1个回答
0
投票

Hive中的分区是文件夹,每个分区键值一个文件夹,不散列(可以是复合键)。 Hive不支持其他分区类型,例如哈希或范围。

但是您可以在SQL中计算哈希值,并在写入数据时使用动态分区。

这样,使用反射可以调用静态Java方法:

insert into table partition(mycolumn) 
SELECT ... 
      reflect('org.apache.commons.codec.digest.DigestUtils', 'sha256Hex', mycolumn)
 FROM mytable;

还配置单元具有int hash(a1[, a2...])sha2(string/binary, int)mask_hash(string|char|varchar)本机功能。

Hive正在使用散列进行存储。桶是文件。参见this question about hashing in buckets

© www.soinside.com 2019 - 2024. All rights reserved.