hive查询结果保存到本地

使用hive查询,结果我们通常会保存到hdfs,然后通过sqoop导出工具,将其导出到外部mysql或者其他地方,但是有时候查询结果就是一个数据,比如count(*)的结果,我们希望直接保存到一个中间变量,然后就可以直接将这个结果写入到mysql。
而hive按照条件查询一般会有很多output输出,很难直接捕获到结果。
在这里插入图片描述
但是我们可以通过将结果保存到本地文件,然后读取本地文件就可以解决这个问题了。
有两种解决办法:

1、通过输出流重定向的方式将查询结果输入到文件
hive -e "use domestic;select count(*) from uv where thedate=20181021" > /tmp/uv.txt

运行截图:
在这里插入图片描述

2、通过hive提供的overwrite语法将结果保存到本地文件夹中:
hive -e "use domestic;insert overwrite local directory '/tmp/uv-local' select count(*) from uv where thedate=20181021"

同样的运行结果会保存在本地的/tmp/uv-local文件夹下:

[lestat@localhost uv]$ cd /tmp/uv-local/
[lestat@localhost uv-local]$ ls
000000_0
[lestat@localhost uv-local]$ cat 000000_0 
2666922
[lestat@PUSH-009 uv-local]$ 

结果直接保存在了文件里面,没有额外的信息,这就很好办了,接下来可以通过cat /tmp/uv-local/000000_0就可以取得结果。在sh脚本中就可以使用这个值了。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

luffy5459

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值