动态分区不能是静态分区“3”的父级
Dynamic partition cannot be the parent of a static partition '3'
将数据插入 table 配置单元时使用以下查询
抛出错误 "Dynamic partition cannot be the parent of a static partition '3'"
INSERT INTO TABLE student_partition PARTITION(course , year = 3)
SELECT name, id, course FROM student1 WHERE year = 3;
请说明原因..
出现这个异常的原因是因为分区是层级文件夹。 course
文件夹是上层文件夹,year
是每年的嵌套文件夹。
动态创建分区时,应先创建上层文件夹(当然),然后再创建嵌套的 year=3
文件夹。
您正在提前(静态)提供 year=3
分区,甚至在 course
已知之前。
反之亦然:静态父分区和动态子分区:
INSERT INTO TABLE student_partition PARTITION(course='chemistry' , year) --static course partition
SELECT name, id, 3 as year --or just simply year
FROM student1 WHERE year = 3;
在HDFS分区文件夹是这样的:
/student_table/course=chemistry/year=3
/student_table/course=chemistry/year=4
/student_table/course=philosophy/year=3
应该存在静态分区。但是如果parent还没有定义它就不能存在。
或者您也可以使 year
分区动态:
INSERT INTO TABLE student_partition PARTITION(course , year)
SELECT name, id, course, 3 as year --or just simply year
FROM student1 WHERE year = 3;
将数据插入 table 配置单元时使用以下查询
抛出错误 "Dynamic partition cannot be the parent of a static partition '3'"INSERT INTO TABLE student_partition PARTITION(course , year = 3) SELECT name, id, course FROM student1 WHERE year = 3;
请说明原因..
出现这个异常的原因是因为分区是层级文件夹。 course
文件夹是上层文件夹,year
是每年的嵌套文件夹。
动态创建分区时,应先创建上层文件夹(当然),然后再创建嵌套的 year=3
文件夹。
您正在提前(静态)提供 year=3
分区,甚至在 course
已知之前。
反之亦然:静态父分区和动态子分区:
INSERT INTO TABLE student_partition PARTITION(course='chemistry' , year) --static course partition
SELECT name, id, 3 as year --or just simply year
FROM student1 WHERE year = 3;
在HDFS分区文件夹是这样的:
/student_table/course=chemistry/year=3
/student_table/course=chemistry/year=4
/student_table/course=philosophy/year=3
应该存在静态分区。但是如果parent还没有定义它就不能存在。
或者您也可以使 year
分区动态:
INSERT INTO TABLE student_partition PARTITION(course , year)
SELECT name, id, course, 3 as year --or just simply year
FROM student1 WHERE year = 3;