san*_*nde 1 hive apache-spark apache-spark-sql beeline hive-query
我正在尝试删除一个创建了 Spark-Sql 的表(内部)表,一些表是如何被删除的,但表的位置仍然存在。有人可以让我知道如何做到这一点吗?
我尝试了 Beeline 和 Spark-Sql
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)
Run Code Online (Sandbox Code Playgroud)
谢谢
Spark 内部使用 Hive Metastore 来创建 Table。如果表是从 spark 创建的外部 hive 表,即 HDFS 中存在的数据,并且 Hive 提供了一个表视图,则 drop table 命令只会删除 Metastore 信息,不会从 HDFS 中删除数据。
所以你可以采取一些替代策略
在要删除的表上执行 alter table,将外部表更改为内部表,然后删除该表。
ALTER TABLE <table-name> SET TBLPROPERTIES('external'='false');
drop table <table-name>;
第一条语句将外部表转换为内部表,第二条语句将删除包含数据的表。
| 归档时间: |
|
| 查看次数: |
2851 次 |
| 最近记录: |