Hadoop配置单元从阵列获取位置

Hadoop配置单元从阵列获取位置,hadoop,hive,Hadoop,Hive,我使用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) =

我使用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

出现错误的原因是配置单元中没有用于阵列位置的内置UDF。有没有获得匹配值索引的解决方案?

没有hive本机支持的UDF索引


然而,砖厂有一个UDF

没有hive本机支持的UDF索引

然而,砖厂有一个UDF

您可以使用。它提供了
array\u position
和其他许多数组功能。

您可以使用。它提供
array\u position
等多种数组功能