Команда drop table не удаляет путь таблицы кустов, созданной spark-sql
Я пытаюсь удалить таблицу (внутреннюю) таблицу, которая была создана Spark-Sql, кое-как, как таблица удаляется, но местоположение таблицы все еще существует. Может кто-нибудь дать мне знать, как это сделать?
Я пробовал как Билайн, так и 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)
Спасибо
1 ответ
Spark внутренне использует Hive metastore для создания таблицы. Если таблица создается как внешняя таблица кустов из spark, то есть данные, представленные в HDFS, и Hive предоставляет представление таблицы для этого, команда удаления таблицы удалит только информацию Metastore и не удалит данные из HDFS.
Таким образом, есть несколько альтернативных стратегий, которые вы могли бы принять
- Удалите данные из HDFS вручную, используя команду hadoop fs -rm -rf
Измените таблицу на таблице, которую вы хотите удалить, измените внешнюю таблицу на внутреннюю, а затем удалите таблицу.
ALTER TABLE <table-name> SET TBLPROPERTIES('external'='false');
drop table <table-name>;
Первый оператор преобразует внешнюю таблицу во внутреннюю таблицу, а второй оператор удаляет таблицу с данными.