繁体   English   中英

drop table命令不会删除由spark-sql创建的hive表的路径

[英]drop table command is not deleting path of hive table which was created by spark-sql

我试图删除一个创建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)

谢谢

Spark内部使用Hive Metastore来创建Table。 如果表是从spark创建的外部配置单元表,即HDFS和Hive中的数据提供了表视图,则drop table命令将仅删除Metastore信息,不会从HDFS中删除数据。

所以你可以采取一些替代策略

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

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

    drop table <table-name>;

第一个语句将外部表转换为内部表,第二个语句将删除带有数据的表。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM