如何删除 Hive table 分桶
How to remove Hive table bucketing
我用 table stocks
错误地执行了以下 ALTER
语句:
ALTER TABLE stocks
CLUSTERED BY (exchange, symbol)
INTO 48 BUCKETS;
如何撤销这个命令?
如果 table 是托管的,则将其设为外部:
ALTER TABLE stocks SET TBLPROPERTIES('EXTERNAL'='TRUE');
描述 table 并记下它的位置、serde 属性并检查它是外部的:
describe formatted stocks;
然后删除 table 并重新创建指定位置,数据将保留用于外部 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
或者,您可以创建 table 并使用指向同一位置的另一个名称,检查它是否有效,将第一个 table 设为外部,删除它,使用 [=14] 重命名第二个 table =]
ALTER TABLE tablename RENAME TO stocks
.
我用 table stocks
错误地执行了以下 ALTER
语句:
ALTER TABLE stocks
CLUSTERED BY (exchange, symbol)
INTO 48 BUCKETS;
如何撤销这个命令?
如果 table 是托管的,则将其设为外部:
ALTER TABLE stocks SET TBLPROPERTIES('EXTERNAL'='TRUE');
描述 table 并记下它的位置、serde 属性并检查它是外部的:
describe formatted stocks;
然后删除 table 并重新创建指定位置,数据将保留用于外部 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
或者,您可以创建 table 并使用指向同一位置的另一个名称,检查它是否有效,将第一个 table 设为外部,删除它,使用 [=14] 重命名第二个 table =]
ALTER TABLE tablename RENAME TO stocks
.