ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
**清空dept表** ```sql 0: jdbc:hive2://hadoop101:10000> truncate table dept; ``` **删除dept表** ```sql 0: jdbc:hive2://hadoop101:10000> drop table if exists dept; ``` **删除dept表,删除后放入trash回收站** ```sql 0: jdbc:hive2://hadoop101:10000> drop table if exists dept purge; ``` 未指定 `purge` 时,当删除表时,将从元数据存储中删除表信息,并像通过`hdfs dfs -rm` 那样删除原始数据。在许多情况下,这会导致表数据被移动到用户主目录中的 `.Trash/Current` 文件夹中,如: ``` /user/root/.Trash/Current/home/hadoop/hive/warehouse/test1.db ``` 因此,错误删除表的用户可以通过使用相同的模式重新创建表、重新创建任何必要的分区,然后使用 hdfs命令手动将数据移回原位,从而恢复丢失的数据。 <br/> 此解决方案依赖于底层实现,因此可能随时间或跨安装发生更改;<mark>强烈建议用户不要随意删除表。</mark> hadoop回收站trash默认是关闭的,可以在 $hadoop/etc/hadoop/core-site.xml 将回收站开启。 ```xml <property> <name>fs.trash.interval</name> <value>1440</value> <description>Number of minutes between trash checkpoints. If zero, the trash feature is disabled. </description> </property> ``` **对dept表重命名为new_dept** ```sql alter table dept rename to new_dept; ``` **修改/添加dept表的属性,如comment属性** ```sql alter table new_dept set tblproperties('comment'='New name Comment'); ``` **修改列与列的分割符** ```sql alter table new_dept set serdeproperties ('field.delim' = '\t'); ``` **修改表存储格式** ```sql alter table new_dept set fileformat rcfile; ``` **修改列名** ```sql alter table new_dept change old_column new_column int; ``` **添加列** ```sql alter table new_dept add columns(worker string, addr string); ``` **替换列** ```sql -- 按顺序从左往右替换列; -- 替换的列少于原表的列,则将原表多出的列删除,但数据还在; -- 替换的列多于原表的列,则在后边追加多出的列; alter table new_dept replace columns(column1 int, column2 string); ```