我正在为一个被分区和绑定的表执行insert语句
但是在运行期间,它抛出了一个关于动态分区数量的错误——即,没有足够的动态分区。
所以,我设置如下:
set hive.exec.max.dynamic.partitions=2000;
set hive.exec.max.dynamic.partitions.pernode=2000;
有人能解释一下应该设置多少个分区吗?我只是给了它们一个随机值。
最佳答案
我们可以通过使用分区列的不同值来预测将要创建的动态分区的最大数量。
分区数的最大值将是每个分区列不同值计数的乘积。
例如,对于某个表,如果我将年份和周列声明为分区列,并且假设我有2013和2014年的数据,那么动态分区的计数可以计算如下:
count of YEAR distinct values X count of week distinct values
2 (2013,2014) X 52 (weeks) = 104 dynamic partitions.
希望这有帮助。
关于hadoop - 如何确定Hive中的动态分区数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32657327/