Cha*_*ika 3 hadoop hive bigdata
我试图删除一个表并在Hive中重新创建它.删除表后,如果我在表上运行select查询,它会在删除之前显示表中的旧行.当表已经被删除时,这怎么可能?为什么即使在删除表并重新创建表之后它仍保留行?
hive> select * from abc;
A 30
B 40
hive> drop table abc;
hive> create external table abc ( name string, qty int);
hive> select * from abc;
A 30
B 40
Run Code Online (Sandbox Code Playgroud)
问题是您正在删除外部表,因此每当您删除该表时,该表的源文件仍然存在于该路径上,因此当您创建具有相同表名的新外部表时,数据可以直接从源路径中提取.因此,删除外部表首先使用以下命令获取表的路径:
hive> describe formatted database_name.table_name;
Run Code Online (Sandbox Code Playgroud)
然后复制出现在说明中的整个位置,例如:
/user/hive/warehouse/database_name.db/table_name
在此之后使用以下命令截断给定表中的所有数据:
hive> dfs -rmr /user/hive/warehouse/database_name.db/table_name;
Run Code Online (Sandbox Code Playgroud)
要么
hive> dfs -rm -r /user/hive/warehouse/database_name.db/table_name;
Run Code Online (Sandbox Code Playgroud)
然后,您可以使用DROP TABLE命令完全擦除它.
| 归档时间: |
|
| 查看次数: |
4969 次 |
| 最近记录: |