【Hive】变量

一、命名空间

Hive的命名空间:hiveconf,system,env,hivevar

【Hive】变量_第1张图片



二、变量

hive变量以java字符串的形式存储,在cli中执行 Hive 的 SQL 语句时,如果 SQL 语句中包含有变量,hive 会先将变量替换成变量值,然后再执行 SQL 语句。


1、set

cli中,使用set命令来增加 / 赋值 / 修改 / 查看变量

hive> set date; -- 查看date变量
hive> set date='2018-01-01'; -- 赋值
hive> set; -- 显示所有环境变量
hive> set -v; --获取到HDFS和MapReduce的环境变量信息 


2、变量及使用

使用变量:${变量}

<对于使用hivevar,前缀是可有可无的,但是对于使用命名空间如hiveconf,system,env的,前缀则不可少。>

  • hivevar

shell:

$ hive --define key=value
$ hive -d key=value
$ hive --hivevar key=value

cli:

hive> set hivevar:date='2018-01-01';
hive> select * from test where busi_date=${hivevar:date};
或者
hive> select * from test where busi_date=${date};

注:定义与使用时还是最好加上hivevar名称空间,否则可能找不到

  • hiveconf

shell:

$ hive -hiveconf date='2018-01-01' -hiveconf date='2018-01-01' -f test.hql
$ hive -hiveconf mapred.job.queue.name=queue2 -e "set mapred.job.queue.name;"

cli:

hive> set date='2018-01-01';
hive> select * from test where busi_date=${hiveconf:date};

你可能感兴趣的:(hive)