我正在为已分区和分区的表执行insert语句 但在运行期间,它引发了一个关于动态分区数量的错误 - 即没有足够的。
所以,我设置如下:
set hive.exec.max.dynamic.partitions=2000;
set hive.exec.max.dynamic.partitions.pernode=2000;
任何人都可以解释这些分区的数量应该设置为多少?我只给了这些随机值。
答案 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.
希望这有帮助。