Если бы это был только один раздел на файл, то вы могли бы загрузить непосредственно в целевой раздел таблицы, используя
hive> LOAD DATA LOCAL INPATH 'yourpath/yourfile.csv' OVERWRITE INTO TABLE your_table PARTITION (key='value');
Наихудший сценарий Если в файле много разделов, вам нужно сначала загрузить в промежуточную таблицу изатем повторно разделите данные, используя insert-overwrite-select:
set hive.exec.dynamic.partition=true;
set hive.exec.dynamic.partition.mode=nonstrict;
insert overwrite official_table partition(partition_key)
select col1, col2, partition_col --partition is the last one
from intermediate table...
И вам нужно загрузить (перезаписать) все данные всего раздела за раз, если это невозможно, тогда select должен объединить данные, уже существующие в целевом разделе, синкрементная загрузка.
См. этот ответ о том, как объединить инкрементные обновления .
Также INSERT (NOT OVERWRITE) INTO table (partition) select ...
является возможным решением для вставки инкрементных данных.Этот оператор должен загружать данные в дополнительные файлы в папке раздела, существующие данные останутся без изменений.