我错误地执行了以下命令 ALTER 带表的语句 stocks :
ALTER
stocks
ALTER TABLE stocksCLUSTERED BY (exchange, symbol)INTO 48 BUCKETS;
ALTER TABLE stocks
CLUSTERED BY (exchange, symbol)
INTO 48 BUCKETS;
如何撤消此命令?
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
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 .
ALTER TABLE tablename RENAME TO stocks
1条答案
按热度按时间sg24os4d1#
如果表是托管的,则将其设为外部:
描述表格并注意其位置、序列属性并检查其是否为外部:
然后删除表并再次创建指定位置,数据将保留在外部表中:
或者,您可以创建另一个名称指向同一位置的表,检查它是否工作,将第一个表设置为外部表,删除它,并使用重命名第二个表
ALTER TABLE tablename RENAME TO stocks
.