arrays - 从HIVE中的给定开始日期和结束日期创建序列数组

标签 arrays date hadoop hive

我有一个数据表,其ID,开始和结束为列,例如:

id | start | end

1 | 2011-01-01 | 2011-01-03

2 | 2011-02-13 | 2011-02-14



我要在HIVE中做的是将整个天范围作为一个数组添加到单独的列中,因此我想获得:

id | start | end | range

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(),但无法正常工作。你有什么建议吗?谢谢!

最佳答案

我怀疑您需要创建一个自定义UDF来做到这一点,如果您具有一些基本的Java知识,这并不是很难。请参阅此答案https://stackoverflow.com/a/21197354/88839,它演示了如何从UDF返回数组。我还没有测试过,但是如果以后有空,我可以试试看。

这里还有一些有关在不使用Maven的情况下创建UDF的说明,但是使用Maven可能更容易-http://appsintheopen.com/posts/29-creating-a-basic-hive-udf

关于arrays - 从HIVE中的给定开始日期和结束日期创建序列数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32986148/

相关文章:

php - 如何在php中将数组合并为二维数组

ruby - 获取日期范围的小数月数

php - 如何隐藏已过日期的数据

java - 在 Java ME 中将 "America/Los Angeles"时区转换为 "PST"或 "PDT"

hadoop - 使用ImageIO.write保存图像时出现ArrayIndexOutOfBoundsException

java - 将属性文件传递给 Oozie Java Action

javascript - 合并有分歧的数组

c++ - 有什么方法可以使模板函数应用于 C++ 中任意长度的数组?

c - 由于带有图像表面阵列的 SDL_Flip,SDL 窗口关闭

angularjs - 集成 Hive 和 AngularJS?