我的数据在s3桶中被划分为年、月、日。我要求每天读取最后六个月的数据,我使用下面的代码读取数据,但它选择的是负值。有没有办法读取过去六个月的正确数据?
from datetime import datetime
d = datetime.now().day
m = datetime.now().month
y = datetime.now().year
df2=spark.read.format("parquet") \
.option("header","true").option("inferSchema","true") \
.load("rawdata/data/year={2021,2022}/month={m-6,m}/*")发布于 2022-01-10 14:33:07
您可以使用地址(字符串)列表作为.load()参数。首先,您可以向后创建6个月的列表(从今天开始):
from datetime import date
from dateutil.relativedelta import relativedelta
y_m_list = [((date.today()+relativedelta(months=-i)).year, (date.today()+relativedelta(months=-i)).month) for i in range(0,6)]
y_m_list 输出:
[(2022, 1), (2021, 12), (2021, 11), (2021, 10), (2021, 9), (2021, 8)]然后将参数创建为
.load([f"rawdata/data/year={x}/month={y}" for x,y in y_m_list])https://stackoverflow.com/questions/70651156
复制相似问题