hive中带条件参数的数组大小

时间:2015-07-19 15:25:51

标签: java arrays hadoop hive udf

我有一个数据集,其中包含一个包含时间戳数组的列和一个只包含一个时间戳的列。我希望使用c1时间戳作为更大和更小的条件来获得数组的大小。

表(my_table):

next_tile

查询:

c1 |           c2           |
----------------------------|
4  | [1,2,3,4,5,6,7,8,9,10] |
1  | [1,2,3,4,5,6,7,8,9,10] |
5  | [1,2,3,4,5,6,7,8,9,10] |
3  | [1,2,3,4,5,6,7,8,9,10] |

udf是我假设的实施。

输出:

select
c1,
c2,
size(some_udf_split_on_c1(sort_array(<array>), c1)[1]) AS smaller_than_c1
size(some_udf_split_on_c1(sort_array(<array>), c1)[2]) AS larger_than_c1

from my_table

1 个答案:

答案 0 :(得分:0)

UDF将是您寻找所需内容的最快捷途径。使用explode和group bys的组合可能会这样做,但与10行UDF代码相比,只需编写UDF就会更快乐。