drop table命令没有删除spark sql创建的配置单元表的路径

jmp7cifd  于 2021-06-26  发布在  Hive
关注(0)|答案(1)|浏览(763)

我正在尝试删除一个由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)

谢谢

1zmg4dgp

1zmg4dgp1#

spark在内部使用配置单元元存储创建表。如果该表是从spark创建的外部配置单元表,即hdfs中存在的数据,并且配置单元在该表上提供了一个表视图,drop table命令将只删除metastore信息,而不会从hdfs中删除数据。
所以你可以采取一些替代策略
使用hadoopfs-rm-rf命令从hdfs手动删除数据
在要删除的表上更改表,将外部表更改为内部表,然后删除该表。
ALTER TABLE SET TBLPROPERTIES('external'='false'); drop table <table-name>; 第一条语句将外部表转换为内部表,第二条语句将删除包含数据的表。

相关问题