您的位置:首页 > 其它

实战 - Hive中使用变量(环境变量、命令行变量、Hive 配置属性)

2017-06-02 11:17 531 查看
在Hive命令行工具中,可以使用系统环境变量、Hive配置文件中定义的属性以及Hive命令行工具中定义的变量。通过 set 命令,可以访问变量和修改变量的值。不同的变量,存储在不同的命名空间中。通过命名空间可以访问到变量。

系统环境变量,存储于 evn 命名空间中,该命名空间中的变量是 只读的

Hive配置属性,存储于 hiveconf 命名空间中,该命名空间中的属性是 可读写的

Hive命令行变量,存储于 hivevar 命名空间中,该命名空间中的变量是 可读写的

Java系统属性,存储于 system 命名空间中,该命名空间中的变量是 可读写的

系统环境变量

在Hive命令行工具中访问系统环境变量,只能读取变量,通过 env:变量名 来访问变量,命名空间不能省略:

hive> set env:HOME;
env:HOME=/root


Hive 配置属性

在 Hive 命令行工具中,可以新增、修改、读取 Hive 配置属性。 通过 hiveconf:变量名 来定义和访问变量,hivevar 命名空间可以省略:

hive> set hive.cli.print.current.db;    #该配置属性用于显示hive当前所在的数据库。
hive.cli.print.current.db=false
hive> set hive.cli.print.current.db=true;
hive (default)>     #hive默认的数据库为 default。


Hive 命令行变量

在 Hive 命令行工具中可以新增、修改、读取自定义变量,通过 hivevar:变量名 来定义和访问变量,hivevar 命名空间可以省略:

4000

自定义变量及赋值

hive> set hivevar:testvar;
hivevar:testvar=test
hive> set testvar;      #忽略 hivevar 命名空间;
testvar=test


在 HQL 中使用自定义变量

在 Hive 命令行工具中执行 Hive 的 SQL 语句时,如果 SQL 语句中包含有变量,hive 会先将变量替换成变量值,然后再执行 SQL 语句。

hive> CREATE TABLE test (id int,${testvar} string);  #变量testvar=test
OK
Time taken: 4.886 seconds
hive> describe test;        #查看表结构
OK
id                      int
test                    string
Time taken: 0.808 seconds, Fetched: 2 row(s)
hive> DROP TABLE test;      #删除表
Moved: 'hdfs://TesthpCluster/user/hive/warehouse/test' to trash at: hdfs://TesthpCluster/user/root/.Trash/Current
OK
Time taken: 1.436 seconds


Java 系统属性

在 Hive 命令行工具中可以新增、修改、读取 Java 系统属性。通过 system:变量名 来访问变量,命名空间不能省略:

hive (default)> set system:user.name;
system:user.name=root
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐