DML数据操作(二)数据导出+数据清除
一、Insert导出
1.将查询的结果导出到本地,数据之间无间隔
|
hive (default)> insert overwrite local directory \'/opt/module/datas/export/student\' select * from student1; |
在Hive客户端窗口查看本地student下面的文件:
hive (default)> !ls /opt/module/datas/export/student;
000000_0
2.将查询的结果格式化导出到本地,数据之间"\t"间隔
|
hive (default)> insert overwrite local directory \'/opt/module/datas/export/student1\' ROW FORMAT DELIMITED FIELDS TERMINATED BY \'\t\' select * from student3; |
3.将查询的结果导出到HDFS上(没有local)
|
hive (default)> insert overwrite directory \'/student4\' > row format delimited fields terminated by \'\t\' > select * from student1; |
注:虽然同是HDFS,但不是copy操作-只是针对数据
二、Hadoop命令导出到本地
注意:一定要写绝对路径
|
hive (default)> dfs -get /student4/000000_0 /opt/module/datas/export/student2.txt; |
三、Hive Shell 命令导出到本地
基本语法:(hive -f/-e 执行语句或者脚本 > file)
> 重定向
|
[itstar@bigdata111hive]$ bin/hive -e \'select * from default.student1;\' > /opt/module/datas/export/student3.txt; |
四、Export导出到HDFS上
|
hive (default)> export table default.student1 to \'/user/hive/warehouse/export/student\'; |
五、Sqoop导出(后续~)
Sqoop加载数据-专门用于数据迁移的工具,后续~。
六、清除表中数据(Truncate)
注意:Truncate只能删除管理表,不能删除外部表中数据,外部表不归Hive管理,HDFS管理外部表。
hive (default)> truncate table student;