我正在使用array_contains函数来查找数组中的项目,并且它运行良好。我正在寻找一个返回匹配的数组的索引。
select b.sku_id
,array_position(b.sku_list, b.sku_id) as matched_index
from
(select split(the_list, ',') as sku_list, sku_id
from data_table) b
where array_contains(b.sku_list, b.sku_id) = TRUE;
这是我的错误:
,array_position(b.sku_list, b.sku_id) as matched_index
错误的原因是Hive中没有用于array_position的内置UDF。获取匹配值索引的任何解决方案?
答案 0 :(得分:0)
hive本身不支持UDF索引。
但是,Brickhouse有一个array index of UDF。
答案 1 :(得分:0)
您可以使用hive-third-functions。它提供array_position
和其他许多数组函数。