[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;
时间: 2024-10-29 03:46:43

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

[Hadoop]Hive r0.9.0中文文档(一)之数据操作语句

一.创建表的语法 CREATE [EXTERNAL] TABLE [IF NOT EXISTS] table_name [(col_name data_type [COMMENT col_comment], ...)] [COMMENT table_comment] [PARTITIONED BY (col_name data_type [COMMENT col_comment], ...)] [CLUSTERED BY (col_name, col_name, ...) [SORTED BY

[Hadoop]Hive r0.9.0中文文档(三)之Hive相关命令

一.Hive命令选项 Usage: Usage: hive [-hiveconf x=y]* [<-i filename>]* [<-f filename>|<-e query-string>] [-S] -i <filename> Initialization Sql from file (executed automatically and silently before any other commands) -e 'quoted query stri

[Hadoop]Hive r0.9.0中文文档(二)之联表查询Join

一.Join语法 join_table: table_reference [INNER] JOIN table_factor [join_condition] | table_reference {LEFT|RIGHT|FULL} [OUTER] JOIN table_reference join_condition | table_reference LEFT SEMI JOIN table_reference join_condition table_reference: table_fac

满江红开放技术研究组织发布Seam 2.0中文文档正式版

满江红开放技术研究组织发布Seam 2.0中文文档正式版 三个月前,满江红开放技术研究组织发布了RC版,详见: http://yulimin.javaeye.com/blog/151917 现在满江红开放技术研究组织正式发布Seam 2.0中文文档正式版,希望对大家有所帮助,谢谢. 同时,再次感谢王琳.马越.晓钢在发布RC版后,对全部译文进行通读,发现并纠正其中的问题. 虽然我们正式宣布正式版发布,但是也希望广大朋友能够在阅读的过程若发现有疑问的地方,及时提出来进行讨论并加以修正,共同提高文档的

[Hadoop]Sqoop 1.4.2中文文档(一)之数据导入

一.Sqoop Help $ sqoop help usage: sqoop COMMAND [ARGS] Available commands: codegen Generate code to interact with database records create-hive-table Import a table definition into Hive eval Evaluate a SQL statement and display the results export Expor

[Hadoop]Sqoop 1.4.2中文文档(三)之SqoopJob与其外的操作

一.sqoop job相关命令参数 usage: sqoop job [GENERIC-ARGS] [JOB-ARGS] [-- [<tool-name>] [TOOL-ARGS]] Job management arguments: --create <job-id> Create a new saved job --delete <job-id> Delete a saved job --exec <job-id> Run a saved job --h

Unity 1.0中文文档:Unity简介

Unity 应用程序块(Unity)是一个轻量级.可扩展的依赖注入容器,支持构造函数.属性和方法调用注入.它有下列优点: 简化了对象的创建,尤其是分层的对象结构和依赖,并简化了应用程序代码. 支持需求的抽象,这允许开发人员在运行时或者配置中指定依赖,并简化了横切关注点的管理. 通过延迟将配置组装到容器来提高灵活性. 服务定位功能允许客户代码保存或者缓存容器.这在开发人员可以持久化容器到 ASP.NET Session 或者 Application 中的 ASP.NET Web 应用程序中特别有用

满江红开放技术研究组织发布Seam 2.0中文文档RC版

"你得知道,我想的比做的更多.如果你要做一个开源项目,必须设想好它的道路,它才会成功."Gavin King这么说过.那时候他已经在新天地luna酒吧灌下大杯的法国葡萄酒,还要装作若无其事.不得不承认这个家伙相当聪明且自负.他做出的决定是深思熟虑的. B/S程序和C/S不同,Request/Response模型让程序冗长的像裹脚布.你同时要处理多种数据失配:服务器端的RDBMS和浏览 器展示出来的HTML之间,需要Servlet的渲染,数据经历了RDBMS Row ,ResultSet

[Hadoop]Sqoop 1.4.2中文文档(二)之数据导出

一.sqoop-export 相关参数: usage: sqoop export [GENERIC-ARGS] [TOOL-ARGS] Common arguments: --connect <jdbc-uri> Specify JDBC connect string --connection-manager <class-name> Specify connection manager class name --connection-param-file <properti