如何确定Hive中的动态分区数

时间:2015-09-18 16:56:27

标签: hadoop mapreduce hive hbase apache-pig

我正在为已分区和分区的表执行insert语句 但在运行期间,它引发了一个关于动态分区数量的错误 - 即没有足够的。

所以,我设置如下:

set hive.exec.max.dynamic.partitions=2000;
set hive.exec.max.dynamic.partitions.pernode=2000;

任何人都可以解释这些分区的数量应该设置为多少?我只给了这些随机值。

1 个答案:

答案 0 :(得分:0)

我们可以通过使用分区列的不同值来预测要创建的最大动态分区数。

分区数的最大值将是每个分区列的不同值计数的乘积。

比如说,对于某些表,如果我将YEAR和WEEK列声明为分区列,并说我有2013年和2014年的数据,那么动态分区的计数可以按如下方式计算,

count of YEAR distinct values X count of week distinct values

2 (2013,2014) X 52 (weeks) = 104 dynamic partitions.

希望这有帮助。