我错误地对表ALTER
执行了以下stocks
语句:
ALTER TABLE stocks
CLUSTERED BY (exchange, symbol)
INTO 48 BUCKETS;
如何撤消此命令?
答案 0 :(得分:1)
如果表是托管表,则将其设置为外部表:
ALTER TABLE stocks SET TBLPROPERTIES('EXTERNAL'='TRUE');
描述表并记下它的位置,serde属性并检查它是否为EXTERNAL:
describe formatted stocks;
然后放置表并再次创建指定位置,数据将保留在EXTERNAL表中:
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
。