[Hadoop]Hive r0.9.0中文文档(四)之Hive变量的使用-阿里云开发者社区

开发者社区> 大数据> 正文
登录阅读全文

[Hadoop]Hive r0.9.0中文文档(四)之Hive变量的使用

简介:
一、介绍 
例子:
$ a=b
$ hive -e " describe $a "

如果你hive数据库中没有b这个表,则会提示Table b does not exist 

hive的变量设置可以放在hiveconf中,使变量赋值与查询合并为一句话: 
例子:
$ bin/hive -hiveconf a=b -e 'set a; set hiveconf:a; \
create table if not exists b (col int); describe ${hiveconf:a}'


Results in: 

Hive history file=/tmp/edward/hive_job_log_edward_201011240906_1463048967.txt
a=b
hiveconf:a=b
OK
Time taken: 5.913 seconds
OK
col	int	
Time taken: 0.754 seconds


二、hive变量使用 

hive的变量有3个作用空间hiveconf,system,env。hiveconf就像平时一样设置:
set x=myvalue

X变量会被这样调用:
${hiveconf:x}

Annotated examples of usage from the test case 

ql/src/test/queries/clientpositive/set_processor_namespaces.q

set zzz=5;
--  sets zzz=5
set zzz;

set system:xxx=5;
set system:xxx;
-- sets a system property xxx to 5

set system:yyy=${system:xxx};
set system:yyy;
-- sets yyy with value of xxx

set go=${hiveconf:zzz};
set go;
-- sets go base on value on zzz

set hive.variable.substitute=false;
set raw=${hiveconf:zzz};
set raw;
-- disable substitution set a value to the literal

set hive.variable.substitute=true;

EXPLAIN SELECT * FROM src where key=${hiveconf:zzz};
SELECT * FROM src where key=${hiveconf:zzz};
--use a variable in a query

set a=1;
set b=a;
set c=${hiveconf:${hiveconf:b}};
set c;
--uses nested variables. 


set jar=../lib/derby.jar;

add file ${hiveconf:jar};
list file;
delete file ${hiveconf:jar};
list file;

三、Disabling 
Variable substitution is on by default. If this causes an issue with an already existing script disable it.
set hive.variable.substitute=false;


set hive.variable.substitute=false;


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
大数据
使用钉钉扫一扫加入圈子
+ 订阅

大数据计算实践乐园,近距离学习前沿技术

其他文章
最新文章
相关文章