hive:如何决定哪个值进入哪个bucket?

b09cbbtk  于 2021-05-29  发布在  Hadoop
关注(0)|答案(2)|浏览(399)

在hive中,如果我有一个bucked表,其中clustered by(employee\u id)分为10个bucket,那么通过查看值,我如何知道哪个值进入哪个bucket?
谢谢。

xxhby3vn

xxhby3vn1#

bucket处理散列。这类似于为数据创建占位符。如果您知道数据的值的程度不同,则可能会创建许多桶,以便限制桶的数量,您可以始终应用一些自定义逻辑。例如,您需要将桶的数量固定为4,然后您可以修改(employee\u id%4),它将始终提供值介于0、1、2、3之间,因此配置单元将相应地路由数据。

p5fdfcr1

p5fdfcr12#

通过查看数据,您无法判断哪个值将进入哪个存储桶。bucketing在hashcode上工作。对于每个值,将生成一个哈希代码,具有相同哈希代码的值将进入同一个bucket。
但是您可以尝试使用java中的hashcode函数为一组特定的值生成hashcode,您可以猜测这个值可能会进入这个bucket。
你可以参考这个链接来获得更多关于在Hive中扣扣的细节。

相关问题