Несмотря на то, что есть много Google, вот короткий ответ.
Если вы хотите динамически вставить в разделы Hive, оба значения должны быть установлены, и вы можете загрузить много разделов за один раз:
SET hive.exec.dynamic.partition=true;
SET hive.exec.dynamic.partition.mode=nonstrict
create table tblename (h string,m string,mv double,country string)partitioned by (starttime string) location '/.../...'
INSERT overwrite table tblename PARTITION(starttime) SELECT h,m,mv,country,starttime from tblename2
В противном случае вам нужно сделать это следующим образом, установив столбец раздела самостоятельно / explicity:
INSERT into table tblename PARTITION(starttime='2017-08-09') SELECT h,m,mv,country from tblname2 where to_date(starttime)='2017-08-09'
Цель значения по умолчанию «строгого» для
hive.exec.dynamic.partition.mode существует, чтобы запретить пользователю
случайно перезаписать все разделы, т. е. чтобы избежать потери данных.
Таким образом, здесь не ситуация различий, скорее ситуация осторожности, но как бы предохранитель на огнестрельном оружии.