将数据插入表配置单元时,使用下面的查询抛出错误“动态分区不能是静态分区“3”的父级”插入表student\u partition(course,year=3)选择name,id,course from student1 where year=3;请解释一下原因。。
wnrlj8wa1#
此异常的原因是分区是分层文件夹。 course 文件夹是上层的 year 是每年的嵌套文件夹。动态创建分区时,应该先创建上层文件夹(当然),然后嵌套 year=3 文件夹。你正在提供 year=3 预先分区(静态),甚至在 course 是众所周知的。反之亦然:静态父分区和动态子分区:
course
year
year=3
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_partition/course=chemistry/year=3 /student_partition/course=chemistry/year=4 /student_partition/course=philosophy/year=3
静态分区应该存在。但是如果父级还没有定义,它就不可能存在。或者你可以 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;
1条答案
按热度按时间wnrlj8wa1#
此异常的原因是分区是分层文件夹。
course
文件夹是上层的year
是每年的嵌套文件夹。动态创建分区时,应该先创建上层文件夹(当然),然后嵌套
year=3
文件夹。你正在提供
year=3
预先分区(静态),甚至在course
是众所周知的。反之亦然:静态父分区和动态子分区:
在hdfs分区中,文件夹如下所示:
静态分区应该存在。但是如果父级还没有定义,它就不可能存在。
或者你可以
year
分区动态以及课程: