在 Hive 中,为什么我不允许在动态分区下嵌套静态分区?
例如,以下是允许的
INSERT OVERWRITE TABLE T PARTITION (ds='2010-03-03', hr)
SELECT key, value, /*ds,*/ hr FROM srcpart WHERE ds is not null and hr>10;
但这是不允许的
INSERT OVERWRITE TABLE T PARTITION (ds, hr = 11)
SELECT key, value, ds/*, hr*/ FROM srcpart WHERE ds is not null and hr=11;
我发现官方 wiki 页面解释(如下所示)不足。更喜欢逻辑解释或底层 map-reduce 级别的解释。
SP is a subpartition of a DP: should throw an error because partition column order determins directory hierarchy. We cannot change the hierarchy in DML