Hive等效于从当前分区日期获取数据

时间:2015-09-02 01:31:43

标签: hive

我一直在尝试自动化Hive中的报告,该报告要求在过去30天内获取数据。

SQL中的等价物:

select * from som_table where part >=  Sysdate-30 and part < sysdate-1

我正在使用以下查询,但我无法启动MR作业。

select *
from some_table
where part >= date_add(date_add(FROM_UNIXTIME(UNIX_TIMESTAMP(), 'yyyy-MM-dd'),-1),1 - day(date_add(FROM_UNIXTIME(UNIX_TIMESTAMP(), 'yyyy-MM-dd'),-1)))
and part < date_add(FROM_UNIXTIME(UNIX_TIMESTAMP(), 'yyyy-MM-dd'),-1)

我搜索了但它说我必须通过脚本找到解决方案,但我需要在另一个工作中运行此查询。

1 个答案:

答案 0 :(得分:0)

我认为你在Hive版本中的公式比他们需要的更复杂。请尝试以下方法:

Select
Date_sub(FROM_UNIXTIME(UNIX_TIMESTAMP()), 30) as thirty_days_ago,
Date_sub(FROM_UNIXTIME(UNIX_TIMESTAMP()), 1) as one_day_ago