如何分配数组和查找配置单元中数组的大小?

jgzswidk  于 2021-05-29  发布在  Hadoop
关注(0)|答案(2)|浏览(542)

假设我从用户那里得到输入字符串作为多个参数。
例如

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

我想通过使用split函数拆分字符串,在where子句中传递这些值(名称)。

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

但是split的输出是一个数组。
所以我的问题是如何在where子句中赋值数组?
例如

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

谢谢您。

smdnsysy

smdnsysy1#

你应该使用 array_contains 自定义项:

  1. WHERE array_contains(SPLIT('${hiveconf:Name}',','),'someValue')
vawmfj5a

vawmfj5a2#

您可以在where name in(select split('1,2,3',',','))中尝试这样的操作

相关问题