Hive下的變數使用

2021-06-26 15:15:18 字數 1222 閱讀 3626

hive的變數前面有乙個命名空間,包括三個hiveconf,system,env,還有乙個hivevar

1. hiveconf的命名空間指的是hive-site.xml下面的配置變數值。

2. system的命名空間是系統的變數,包括jvm的執行環境。

3. env的命名空間,是指環境變數,包括shell環境下的變數資訊,如hadoop_home之類的

普通的變數可以使用

--define key=value 

或者 --hivevar key=value

來宣告,這都代表是hivevar,的變數。

如:$ hive --define key=value

簡寫 hive -d key=value

或$ hive --hivevar key=value

新增多個變數的時候如下:

sql**  

$ hive --define a='a' --define b='b'

對於使用hivevar,字首是可有可無的,如:

sql**  

hive> create

table toss1(i int, $ string);  

等價於sql**  

hive> create

table toss2(i2 int, $ string);  

但是對於使用命名空間如hiveconf,system,env的,字首則不可少

在hive下面,可以通過

set;

或者set -v;  

來檢視現有環境的所有變數的值。加上 -v引數,可以獲取到hdfs和mapreduce的環境變數資訊。

乙個簡單的sample

sql**  

hive> set

current_date='2012-09-16';  

hive> select * from foo where

day >= '$'

similarly, you could pass on command line:  

hive -f ***.hql

$ hive -hiveconf current_date='2012-09-16' -hiveconf current_date='2012-09-16' -f test.hql

hive -hiveconf mapred.job.queue.name=queue2 -e "set mapred.job.queue.name;"

Hive下的變數使用

hive變數 hive的變數前面有乙個命名空間,包括三個hiveconf,system,env,還有乙個hivevar 1.hiveconf的命名空間指的是hive site.xml下面的配置變數值。2.system的命名空間是系統的變數,包括jvm的執行環境。3.env的命名空間,是指環境變數,包...

hive的變數傳遞設定

今天同事在oozie的workflow中執行乙個hive查詢,但是直接就報異常 variable substitution depth too large 40,從網上查詢可知,可以確認是由於語句中使用了過多的變數導致,在hive以前的版本中,這個限制是寫死的40個,查詢hive的最新的原 雖然判斷...

chrome下使用的let,const變數的誤區

學es6,總是習慣在控制項臺直接貼上 執行,用到let,const變數時在chrome總出錯,按提示在第一行加 use strict 還是不行!use strict function iterentries obj let myobj for let key of iterentries myobj...