我一直在试图自动化Hive中的报告,这需要在过去30天内获取数据。Hive相当于从当前分区日期获取数据
等效于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)
我搜索了但它说我必须通过脚本找到解决方案,但我需要在另一项工作中运行此查询。
“我搜索过但它说我必须通过脚本找到解决方案,但我需要在其他工作中运行此查询。”请解释这是什么意思?你看到的具体错误是什么? – gobrewers14
我简直不明白为什么你把“SysDate -30”翻译成一个非常复杂的公式,最终产生“SysDate -day(SysDate)”。无论如何,“SysDate -30”是Oracle方言,而不是标准的SQL。 –