我正在尝试删除一个由sparksql创建的表(内部)表,该表是如何被删除的,但该表的位置仍然存在。有人能告诉我怎么做吗?
我试过直线和Sparksql
create table something(hello string)
PARTITIONED BY(date_d string)
ROW FORMAT DELIMITED FIELDS TERMINATED BY "^"
LOCATION "hdfs://path"
)
Drop table something;
No rows affected (0.945 seconds)
谢谢
1条答案
按热度按时间1zmg4dgp1#
spark在内部使用配置单元元存储创建表。如果该表是从spark创建的外部配置单元表,即hdfs中存在的数据,并且配置单元在该表上提供了一个表视图,drop table命令将只删除metastore信息,而不会从hdfs中删除数据。
所以你可以采取一些替代策略
使用hadoopfs-rm-rf命令从hdfs手动删除数据
在要删除的表上更改表,将外部表更改为内部表,然后删除该表。
ALTER TABLE SET TBLPROPERTIES('external'='false');
drop table <table-name>;
第一条语句将外部表转换为内部表,第二条语句将删除包含数据的表。