Удаление записей из целевой таблицы улья

#hive #hiveql

Вопрос:

У меня есть целевая таблица A, из которой я хочу удалить 3 повторяющиеся записи. Я обнаружил, что удаление из таблицы, где id = 1, не работает в улье (что просто)

В свою очередь, то, что я сейчас делаю, это :

 Step 1: Create a copy table of the target table
 
 Step 2: Insert into copy table select * from target where id not in (1,2,3)
 
 step 3: Truncate target table
 
 step 4: Insert into target table select * from copy table
 

Есть ли какой-нибудь более простой подход, чем этот?

Ответ №1:

Вы можете вставить перезапись из себя:

 --for partitioned table
set hive.exec.dynamic.partition=true;
set hive.exec.dynamic.partition.mode=nonstrict;

--If you are on Qubole
set hive.allow.move.on.s3=true;

insert overwrite table target partition (col1,col2)
select * from target where id not in (1,2,3)
 

Комментарии:

1. спасибо за ваш ответ. Если это разделенная таблица, то это будет вставка,перезапись таблицы tabl1 раздел (столбец 1, столбец 2) выберите * из цели, где идентификатор не указан (1,2,3) ?

2. @джахан Да. Добавить добавил, что в ответе

3. Огромное спасибо.