0

我有一个场景,我在 AWS Glue 作业中以“YYYY-MM-DD”格式传递运行日期值。

让我们说 2021-04-19。

现在,我将这个运行日期读为 'datetime.strptime(rundate, "%y-%m-%d")'

但是现在我想从中创建2个变量变量A和变量B,例如-

变量 A= rundate- 2 周(应保存为 YYYYMMDD 格式)

变量 B = rundate- 1 周(应保存为 YYYYMMDD 格式)

然后使用此变量过滤数据框中的数据。

4

1 回答 1

0

使用datetimelib use从您的运行日期timedelta中减去weeks/days..etc

Example:

Using Python:

import datetime
varA=datetime.datetime.strftime(datetime.datetime.strptime(rundate, "%Y-%m-%d")-datetime.timedelta(days=7),"%Y-%m-%d")
#'2021-04-12'

varB=datetime.datetime.strftime(datetime.datetime.strptime(rundate, "%Y-%m-%d")-datetime.timedelta(days=14),"%Y-%m-%d")
#'2021-04-05'

Using pyspark's Spark session:

rundate='2021-04-19'
varA=spark.sql(f"select string(date_sub('{rundate}',7))").collect()[0][0]
#'2021-04-12'
varB=spark.sql(f"select string(date_sub('{rundate}',14))").collect()[0][0]
#'2021-04-05'
于 2021-04-22T22:15:44.050 回答