有没有一种方便的方法在hive中使用ARRAY_CONTAINS函数来搜索数组列中的多个条目而不只是一个?所以而不是:
WHERE ARRAY_CONTAINS(array, val1) OR ARRAY_CONTAINS(array, val2)
我想写:
WHERE ARRAY_CONTAINS(array, val1, val2)
完整的问题是,当我运行脚本时,我需要从命令行参数动态读取val1
和val2
,我通常不知道有多少值会被限制。因此,您可以认为vals
是一个逗号分隔的列表(或数组),其中包含值val1
,val2
,...
,我想写一下
WHERE ARRAY_CONTAINS(array, vals)
提前致谢!
答案 0 :(得分:2)
有一个UDF here可以让您获取两个数组的交集。假设您的值具有结构
values_array = [val1, val2, ..., valn]
然后你可以做
where array_intersection(array, values_array)[0] is not null
如果他们没有任何共同点,则会返回[]
,因此[][0]
将为null
答案 1 :(得分:0)
model.predict(x, ...)
数据
[“ Rainier”,“ Rendezvous CX”,“ Century Custom 4dr”,“ LeSabre Custom 4dr”,“ Regal LS 4dr”,“ Regal GS 4dr”,“ LeSabre Limited 4dr”,“ Park Avenue 4dr”,“公园大道超4dr“]
返回 是
答案 2 :(得分:-2)
选择* 从表 侧视图以arr爆炸(数组) 其中arr in(值) ;