drop table 命令不会删除由 spark-sql 创建的配置单元 table 的路径
drop table command is not deleting path of hive table which was created by spark-sql
我正在尝试删除创建的 table(内部)table Spark-Sql,table 是如何删除的,但 table 的位置 table 仍然存在。谁能告诉我怎么做?
我尝试了 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)
谢谢
Spark 在内部使用 Hive Metastore 创建 Table。如果 table 从 spark 创建为外部配置单元 table 即 HDFS 中存在的数据,并且 Hive 提供了一个 table 视图,drop table 命令只会删除Metastore 信息,不会从 HDFS 中删除数据。
因此您可以采取一些替代策略
- 使用 hadoop fs -rm -rf 命令从 HDFS 手动删除数据
对要删除的 table 执行更改 table,将外部 table 更改为内部 table 然后删除 table.
ALTER TABLE <table-name> SET TBLPROPERTIES('external'='false');
drop table <table-name>;
第一个语句将外部 table 转换为内部 table,第二个语句将删除包含数据的 table。
我正在尝试删除创建的 table(内部)table Spark-Sql,table 是如何删除的,但 table 的位置 table 仍然存在。谁能告诉我怎么做?
我尝试了 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)
谢谢
Spark 在内部使用 Hive Metastore 创建 Table。如果 table 从 spark 创建为外部配置单元 table 即 HDFS 中存在的数据,并且 Hive 提供了一个 table 视图,drop table 命令只会删除Metastore 信息,不会从 HDFS 中删除数据。
因此您可以采取一些替代策略
- 使用 hadoop fs -rm -rf 命令从 HDFS 手动删除数据
对要删除的 table 执行更改 table,将外部 table 更改为内部 table 然后删除 table.
ALTER TABLE <table-name> SET TBLPROPERTIES('external'='false');
drop table <table-name>;
第一个语句将外部 table 转换为内部 table,第二个语句将删除包含数据的 table。