Hive变量和属性

hive自定义变量可以采用--define key=value,也可以使用~hivevar key=value,两个都是可以让用户进行自定义变量,以便在后续的hive脚本当中引用,来满足自定义变量的需求。其实在执行--define key=value,hive是把自定义的键值对放到hivevar命名空间当中。因此,两个的作用是等同的。

hive当中变量和属性的命名空间主要分为四种:hivevar、hivecof、system、env。

命名空间 使用权限 解释
hivevar 可读/可写 用户自定义的变量
hiveconf 可读/可写 HIVE相关配置属性
system 可读/可写 java定义的配置属性
env 只读 shell环境定义的环境变量

在CLI命令行当中,我们可以采用SET命令来显示或修改变量值。

例1、我们利用env显示一下之前安装时候hive的环境变量。

set env:HIVE_HOME

HIve变量和属性


例2、我们利用--define和hivevar命名空间演示一下用户自定义变量:

--用户自定义
hive --define stuname=freeit

--查看自定义的值
set stuname;

--再次利用命名空间hivevar设置值
set hivevar:stuname=freeit1;

--查看自定义
set stuname;

--查看命名空间定义的值
set hivevar:stuname;

HIve变量和属性


hive如何使用变量

hive自定义好了变量和属性,在hive脚本当中是如何引用的呢?

变量和属性获取语法如下:

${命名空间:变量名}

比如:${hivevar:stuname}获取用户自定义变量stuname、${env:HIVE_HOME}获取hive的安装目录的环境变量。

注意:假如命名空间是hivevar可以省略命名空间,直接写${变量名}:${stuname}