Причина этого исключения в том, что разделы являются иерархическими папками. Папка course
является верхним уровнем, а папка year
- это вложенные папки для каждого года.
При динамическом создании разделов сначала должна быть создана верхняя папка (курс), а затем вложенная папка year=3
.
Вы предоставляете year=3
раздел заранее (статически), до того как course
станет известно.
Возможно наоборот: статический родительский раздел и динамический дочерний раздел.
В разделах 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;