如何删除配置单元表bucketing

siv3szwd  于 2021-06-27  发布在  Hive
关注(0)|答案(1)|浏览(300)

我错误地执行了以下命令 ALTER 带表的语句 stocks :

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

如何撤消此命令?

sg24os4d

sg24os4d1#

如果表是托管的,则将其设为外部:

ALTER TABLE stocks SET TBLPROPERTIES('EXTERNAL'='TRUE');

描述表格并注意其位置、序列属性并检查其是否为外部:

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 .

相关问题