0

我正在使用 hadoop 进行 Map Reduce 作业,其中运行作业的命令如下所示

jar path_to_jar.jar -Dmongo.input.query=' {"created_at":"2013-06-13"}' path_to_config_class

当我手动传递创建的日期时,这很好用,但是我应该如何使它成为动态的,比如我想将它添加到一个运行一天一次的 cron 作业中,并且在运行时我需要获取当前日期系统和通行证。

我发现我可以使用在 Linux 提示符date +"%Y-%m-%d"中获取2013-06-13(当前日期),但是如何使用 -D 选项传递它?

谢谢。

4

2 回答 2

1

试试这个:

$(date +%Y-%m-%d) //execute

所以你在终端窗口中的命令看起来像

jar path_to_jar.jar -Dmongo.input.query=' {"created_at":"'$(date +%Y-%m-%d)'"}' path_to_config_class
于 2013-06-13T14:03:16.157 回答
1

您可以使用以下printf命令:

# Generate query
QUERY=$(printf ' {"created_at":"%s"}' $(date +%Y-%m-%d))
# Use it as an argument
jar path_to_jar.jar -Dmongo.input.query="$QUERY" etc etc
于 2013-06-13T14:05:46.643 回答