我有一个数据表,其id,start和end为列,如:
id |开始|端
1 | 2011-01-01 | 2011-01-03
2 | 2011-02-13 | 2011-02-14
我想在HIVE中做的是将整个天数作为一个数组添加到一个单独的列中,所以我想获得:
id |开始|结束|范围
1 | 2011-01-01 | 2011-01-03 | [ '2011-01-01', '2011-01-02', '2011-01-03']
2 | 2011-02-13 | 2011-02-14 | [ '2011-02-13', '2011-02-14']
我尝试使用collect_set()但无法使其正常工作。你有什么建议吗?谢谢!
答案 0 :(得分:0)
我怀疑你需要创建一个自定义UDF才能做到这一点,如果你有一些基本的Java知识,这并不难。请参阅此答案https://stackoverflow.com/a/21197354/88839,演示如何从UDF返回数组。我没有测试过,但是如果我稍后再花一些时间,我可能会试一试。
以下是关于在没有Maven的情况下创建UDF的一些说明,但使用Maven可能更容易 - http://appsintheopen.com/posts/29-creating-a-basic-hive-udf