在Hive中,可以使用ARRAY_FILTER
函数来实现数组元素的过滤
假设我们有一个名为my_table
的表,其中包含一个名为my_array
的数组列,我们想要过滤掉数组中所有小于10的元素。可以使用以下查询:
SELECT
my_array
FROM
my_table
LATERAL VIEW
explode(my_array) exploded_array AS element
WHERE
element >= 10;
在这个查询中,我们首先使用LATERAL VIEW
将my_array
列展开为一个行集,其中每个元素都是一个单独的行。然后,我们使用WHERE
子句过滤出大于等于10的元素。最后,查询结果将包含过滤后的数组。
如果你想要在原始数组中保留过滤后的元素,可以使用ARRAY_AGG
函数将过滤后的元素重新组合成一个数组:
SELECT
ARRAY_AGG(element) AS filtered_array
FROM
my_table
LATERAL VIEW
explode(my_array) exploded_array AS element
WHERE
element >= 10;
这个查询将返回一个包含过滤后元素的新数组。