我错误地用 table 执行了以下ALTER
语句stocks
:
ALTER TABLE stocks
CLUSTERED BY (exchange, symbol)
INTO 48 BUCKETS;
如何撤消此命令?
我错误地用 table 执行了以下ALTER
语句stocks
:
ALTER TABLE stocks
CLUSTERED BY (exchange, symbol)
INTO 48 BUCKETS;
如何撤消此命令?
如果表是托管的,则将其设为外部:
ALTER TABLE stocks SET TBLPROPERTIES('EXTERNAL'='TRUE');
描述表并记下它的位置、serde 属性并检查它是外部的:
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
.