1、insert方式
格式:
insert overwrite [local] directory 'path' select sql;
注释:
(1)不加local表示HDFS路径
(2)将数据保存到本地
insert overwrite local directory '/opt/datas/emp_insert' select * from emp;
(3)输出的目录可以存在,底层会先进行删除输出目录的操作,然后将数据文件写入文件夹中
insert overwrite local directory '/opt/datas/emp_in01' select * from emp;
(4)hive 默认的字段分隔符为ascii码的控制符\001,建表的时候用fields terminated by '\001'
(5)指定分隔符(一般情况下,我们导出都会指定分隔符)
insert overwrite local directory '/opt/datas/emp_in02' row format delimited fields terminated by '\t' select * from emp;
(6)将数据保存到HDFS(旧版本:如果是多级目录,父级目录要事先存在,新版本:随意)
insert overwrite directory '/emp_hdfs' select * from emp;
2、通过HDFS的shell -get命令来获取数据到本地
3、通过hive -e -f参数将输出结果重定向到本地文件中
bin/hive -e 'select * from emp' >> hive.log
4、sqoop
5、hive支持import和export
关系型数据库也支持这样的操作,但是相对来说没有一些专门的工具功能实现的好.
官网:https://cwiki.apache.org/confluence/display/Hive/LanguageManual+ImportExport
export table tb_name to 'hdfs_path'
import table tb_name from 'hdfs_path'