【发布时间】:2020-12-07 16:03:57
【问题描述】:
我必须运行 spark 作业,并且在该 spark 作业中,我们必须将日期作为参数传递以读取当前目录。我正在使用 Airflow 来安排工作。以下是一些信息
开始日期
import pendulum
local_tz = pendulum.timezone("Asia/Kolkata")
start_date': datetime(year=2020, month=8, day=3,tzinfo=local_tz)
schedule_interval
schedule_interval='20 0 * * *'
在工作中传递的值
{{ (execution_date + macros.timedelta(hours=5,minutes=30) - macros.timedelta(days=1)).strftime("%Y/%m/%d") }}
我们必须在前一天的午夜运行这项工作,但是这个表达式给了我前天的日期。我添加了 5:30,因为我们的气流使用 UTC 时间。
谁能解释一下这里发生了什么?
谢谢
【问题讨论】:
-
我认为 spark 不关心时区。
-
这次是 schedule_interval。如果我没有更改时区,那么作业将触发 UTC 午夜而不是我当地的午夜,直到那时我的数据目录还没有准备好读取。
标签: python apache-spark airflow scheduler directed-acyclic-graphs