0

有一个事件表,按时间(年、月、日、小时)分区想要在配置单元脚本中加入一些事件,这些事件将年、月、日、小时作为变量,你如何添加例如所有 6 小时的事件在我没有“恢复所有……”的情况下之前

10倍

4

1 回答 1

0

所以基本上我需要的是一种使用 Hive 脚本作为参数接收的日期并在该日期之前 3 小时和之后 3 小时添加所有分区的方法,而不恢复所有分区并在每个 Where 子句中添加特定时间。

没有找到在 hive 脚本中执行此操作的方法,因此我编写了一个快速的 python 代码,该代码获取日期和表名,以及从之前/之后添加多少小时。当尝试在 Hive 脚本中运行它时: !python script.py tablename ${hivecond:my.date} 3 我很惊讶变量替换不会发生在以 ! 开头的行中。

我的解决方法是使用以下内容获取 hive 脚本从机器中的日志文件中收到的日期:'cat /mnt/var/log/hadoop/steps/ ls /mnt/var/log/hadoop/steps/ |sort -r|head -n 1/stdout',然后您可以从那里解析每个 hive 参数python 代码而不通过 Hive 传递它。

于 2012-10-24T09:08:32.690 回答