【问题标题】:Hive: Get the list of days for the specified monthHive:获取指定月份的天数列表
【发布时间】:2016-12-12 08:22:02
【问题描述】:

对于给定的月份,比如 12 月,我想要以下行作为输出。有没有办法通过内置的 Hive UDF 实现这一点?

2016 年 12 月 1 日
2016 年 12 月 2 日
.
.
.
2016 年 12 月 30 日
2016 年 12 月 31 日

自己找到了答案(其中 dual 是 ORACLE 中的虚拟表):

选择 date_add('2016-11-01',cntr - 1) from (选择explode(num) AS cntr from (选择数组(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23, 24,25,26,27,28,29,30,31) 作为来自 dual 的 num) temp1 ) 温度 2 其中 cntr

【问题讨论】:

  • 请更详细地更新您的问题。你在做什么,你想要什么作为输出,你在哪里卡住了??
  • 我需要一个可以输出以上行的Hive查询
  • 我需要的只是给定月份的日期列表,在单独的行中。
  • 你能不能加一下你的表,你见过cwiki.apache.org/confluence/display/Hive/…
  • 在我的总结中查看解决方案

标签: hive


【解决方案1】:

您的仓库中需要一个日历日期维度date_dim 表。该表应该在每个数据仓库中用作维度并用于像您这样的情况。我建议您创建并加载此表。您可以生成查询 date_dim 按年和月过滤的所需行。 例如,您可以在此处下载它:http://www.kimballgroup.com/data-warehouse-business-intelligence-resources/books/microsoft-data-warehouse-dw-toolkit/ 或查找其他来源或生成您自己的来源。
另见这篇关于 date_dim 生成的文章:https://www.codeproject.com/articles/647950/create-and-populate-date-dimension-for-data-wareho

【讨论】:

  • 在我的总结中查看解决方案
【解决方案2】:

使用 date_format() 的 hive。假设您的 date_field 变量。

select date_format(date_field,'dd-MMM-yyyy') from table1;

其中table1 是表名。

【讨论】:

    猜你喜欢
    • 2010-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-17
    • 1970-01-01
    • 2017-05-20
    • 1970-01-01
    相关资源
    最近更新 更多