我一直在尝试自动化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)
我搜索了但它说我必须通过脚本找到解决方案,但我需要在另一个工作中运行此查询。
答案 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