Если запросы пользователей не пострадают при изменении исходной таблицы, предлагаю сразу записать во временную таблицу только одну партицию, ту, которая изменяется. И записывать сразу с фильтром. Потом поменять папки местами (придётся дать другое название исходной папке). Восстановить метаданные и удалить всё ненужное
По пунктам:
1. CREATE
TABLE
temp.table_name PARTITIONED BY
part_field LOCATION
‘temp/loc’ AS SELECT * FROM main.table WHERE part_field = ‘value’ AND key not in (del_key1, del_key2)
2. hdfs dfs -mv main/loc/part_field=value temp/loc/_part_field=value
3. hdfs dfs -mv temp/loc/part_field=value main/loc/part_field=value
4. Invalidate and restore по необходимости
5. Если всё прошло без ошибок, hdfs dfs -rm -r temp/loc; drop table temp.table_name
Первый пункт - единственный нагруженный