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 中删除数据。

因此您可以采取一些替代策略

  1. 使用 hadoop fs -rm -rf 命令从 HDFS 手动删除数据
  2. 对要删除的 table 执行更改 table,将外部 table 更改为内部 table 然后删除 table.

    ALTER TABLE <table-name> SET TBLPROPERTIES('external'='false');

    drop table <table-name>;

第一个语句将外部 table 转换为内部 table,第二个语句将删除包含数据的 table。