Как убрать ковш таблицы Hive - PullRequest
0 голосов
/ 01 ноября 2018

Я ошибочно выполнил следующий оператор ALTER с таблицей stocks:

ALTER TABLE stocks
CLUSTERED BY (exchange, symbol)
INTO 48 BUCKETS;

Как отменить эту команду?

1 Ответ

0 голосов
/ 01 ноября 2018

Если таблица управляется, то сделать ее внешней:

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

В качестве альтернативы вы можете создать таблицу с другим именем, указывающую на то же место, проверить, работает ли она, создать первую таблицу EXTERNAL, удалить ее, переименовать вторую таблицу, используя

ALTER TABLE tablename RENAME TO stocks.

...