假设我从用户那里得到输入字符串作为多个参数。例如
hive -f demo.txt -hiveconf Name="a,b,c,d"
我想通过使用split函数拆分字符串,在where子句中传递这些值(名称)。即
set a=SPLIT('${hiveconf:Name}',',');
但是split的输出是一个数组。所以我的问题是如何在where子句中赋值数组?例如
WHERE Name IN (${hiveconf:a}[0:?])
谢谢您。
smdnsysy1#
你应该使用 array_contains 自定义项:
array_contains
WHERE array_contains(SPLIT('${hiveconf:Name}',','),'someValue')
vawmfj5a2#
您可以在where name in(select split('1,2,3',',','))中尝试这样的操作
2条答案
按热度按时间smdnsysy1#
你应该使用
array_contains
自定义项:vawmfj5a2#
您可以在where name in(select split('1,2,3',',','))中尝试这样的操作