今天遇到了一个关于hive导出数据的一个坑,我想把数据导出到/demo下,没曾想竟然会把/demo下的所有数据给覆盖了。
来看一下把数据导出到路径深的目录,导入之前可以看到/demo目录下有如下内容。
insert overwrite local directory ‘/demo/test3/hive/result’
ROW FORMAT DELIMITED FIELDS TERMINATED BY ‘\t’ select * from dept;
执行完以后查看文件result中的文件
而且/demo下的全部文件也没有被覆盖掉。
反观如果目录很短的话很容易把当前目录中的所有内容全部覆盖掉
下面演示一波,例如我想把dept中的数据导出到/demo下面。
insert overwrite local directory ‘/demo’ ROW FORMAT DELIMITED FIELDS TERMINATED BY ‘\t’ select * from dept;
来看结果,之前/demo下的test1,test2之类的内容全部被覆盖了,假如那些内容很重要的话岂不是后悔不已。
所以使用此种导出数据的方法时一定要注意要把导出的目录写长一点.