繁体   English   中英

蜂巢:如何确定哪个值进入哪个存储桶?

[英]Hive: how is it decided which value goes into which bucket?

在蜂巢中,如果我有一个带有CLUSTERED BY(employee_id)INTO 10 BUCKETS的存储桶表,则通过查看值我将如何知道哪个值进入哪个存储桶?

谢谢。

通过查看数据,您无法判断哪个值将进入哪个存储桶。 桶对哈希码有效。 对于每个值,将生成一个哈希码,并且具有相同哈希码的值将进入同一存储桶。

但是,您可以尝试使用java中的hashcode函数为一组特定的值生成哈希码,并且您可能会猜测此值可能会进入此存储桶。

您可以参考此链接以获取有关Hive中的存储桶的更多详细信息。

值区适用于散列。 这就像为数据创建占位符一样。如果您知道数据具有不同程度的值,则可能会导致创建很多数量的存储桶以限制存储桶的数量,您可以始终应用一些自定义逻辑。您需要将存储桶的数量固定为4,然后可以进行mod(emplyoee_id%4),它将始终为您提供0、1、2、3之间的值,因此Hive将相应地路由数据。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM