Я по ошибке выполнил следующий оператор ALTER
с таблицей stocks
:
ALTER TABLE stocks
CLUSTERED BY (exchange, symbol)
INTO 48 BUCKETS;
Как отменить эту команду?
Я по ошибке выполнил следующий оператор ALTER
с таблицей stocks
:
ALTER TABLE stocks
CLUSTERED BY (exchange, symbol)
INTO 48 BUCKETS;
Как отменить эту команду?
Если таблица управляемая, то сделайте ее внешней:
ALTER TABLE stocks SET TBLPROPERTIES('EXTERNAL'='TRUE');
Опишите таблицу и обратите внимание на ее расположение, свойства serde и убедитесь, что она является ВНЕШНЕЙ:
describe formatted stocks;
Затем удалите таблицу и создайте заново, указав местоположение, данные останутся для ВНЕШНЕЙ таблицы:
DROP TABLE stocks;
CREATE EXTERNAL TABLE stocks(
columns definition)
STORED AS TEXTFILE --use the same DDL
location '/table_location_path'; --use the same path from describe table
В качестве альтернативы вы можете создать таблицу с другим именем, указывающим на то же место, проверить, работает ли она, сделать первую таблицу ВНЕШНЕЙ, удалить ее, переименовать вторую таблицу, используя
ALTER TABLE tablename RENAME TO stocks
.
CREATE TABLE new_table as SELECT * FROM your_bucketed_table
, а затем удалить Bucketed_table и переименовать new_table - person Bala   schedule 01.11.2018undo alter
. - person pvy4917   schedule 01.11.2018