2016-12-08 29 views
1

假設我將Input string作爲來自用戶的多個參數。如何分配數組並在蜂巢中查找數組的大小?

e.g

hive -f demo.txt -hiveconf Name="a,b,c,d" 

我想通過WHERE子句中的這些值(名稱),通過拆分使用SPLIT函數的字符串。

set a=SPLIT('${hiveconf:Name}',','); 

但是SPLIT的輸出是一個數組。

所以我的問題是我怎麼可以在WHERE子句中分配數組?

例如

WHERE Name IN (${hiveconf:a}[0:?]) 

謝謝。

回答

0

您應該使用array_contains UDF:

WHERE array_contains(SPLIT('${hiveconf:Name}',','),'someValue') 
+0

謝謝回答...我已經嘗試過,但沒有工作。 – Amit

0

你可以嘗試這樣的事情WHERE名稱(選擇SPLIT( '1,2,3', ''))