hive 脚本接受参数

有时候需要向hive脚本中传入参数,以便可以重用脚本;
向脚本中传入参数主要由两种情况:
1、通常是通过shell脚本调度hive脚本的, hive提供了可以直接读取系统变量和环境变量的方法;
hive脚本如下所示

#test.sql
use pxh;
select 
'${env:month}' as month
from pxh.dual;

启动脚本如下:

#start.sh
#!/bin/sh
#ecoding=utf-8

set -x
export month=`date -d 'last month' +%Y-%m`
hive -f test.sql

运行结果:
这里写图片描述

2、在运行hive命令时传入参数,使用-hivevar 和 -hiveconf 两种参数选项,来给此次的执行脚本传入参数

hive脚本如下:

#test.sql
use pxh;
select 
'${hiveconf:month}' as month
from pxh.dual;

启动脚本如下:

#start.sh
#!/bin/sh
#ecoding=utf-8

set -x
month=`date -d 'last month' +%Y-%m`
hive -hiveconf month=$month -f test.sql
#hive -hivevar month=$month -f test.sql

运行结果:
这里写图片描述

注意事项:hive脚本中的变量没用单引号时,当传入的参数是个时间变量时,出现意外的结果,
如传入时间”2016-06” 输出结果为”2010”,当用系统变量system时,也没有获得想要的结果;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值