Hive表中四种不同数据导出方式以及如何自定义导出列分隔符

问题导读:

1、Hive表数据四种导出方式是?

2、导出命令中LOCAL的作用及有无的区别?

3、导出命令中是否可以向导入命令一样使用INTO?

4、如何自定义导出文件的列分隔符?

5、hive的-e和-f参数的作用及如何使用其来导出数据?

6、hive shell环境中source命令的作用?

我们以test1表为例演示几种数据导出方式,test1表中的数据内容如下:

hive> select * from test1;
OK
Tom     24.0    NanJing Nanjing University
Jack    29.0    NanJing Southeast China University
Mary Kake       21.0    SuZhou  Suzhou University
John Doe        24.0    YangZhou        YangZhou University
Bill King       23.0    XuZhou  Xuzhou Normal University
Time taken: 0.064 seconds, Fetched: 5 row(s)

一、导出数据至本地文件系统

(1) 导出数据

hive> insert overwrite local directory "/home/hadoopUser/data"
    > select name,age,address
    > from test1;

/home/hadoopUser/data是一个目录,一个文件或者多个文件将会被写到该目录下,具体个数取决于调用的reducer的个数。此处的local表示导出到本地文件系统,如果不加local,则表示导出到分布式文件系统。

(2) 查看导出的数据

Tom^A24.0^ANanJing
Jack^A29.0^ANanJing
Mary Kake^A21.0^ASuZhou
John Doe^A24.0^AYangZhou
Bill King^A23.0^AXuZhou

在本地文件系统目录/home/hadoopUser/data中生成了一个000000_0文件,里面的内容如上所示。每个列以^A(八进制\001)分隔。

二、导出数据至分布式文件系统

(1) 导出数据

hive> insert overwrite  directory "/output"
    > select name,age,address
    > from test1;

 此处与第一种方法的不同之处就在于没有local关键字,目录/output为分布式文件系统的一个目录,也可以写全:hdfs://master-server/output

(2) 查看导出的数据

结果和第一种方法一样

注意:如果我们将overwrite改成into,就像数据导入表一样,结果会怎么样。

hive&g
  • 4
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值