首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从目录中读取星体分区数据

从目录中读取星体分区数据
EN

Stack Overflow用户
提问于 2022-01-10 10:44:53
回答 1查看 917关注 0票数 1

我的数据在s3桶中被划分为年、月、日。我要求每天读取最后六个月的数据,我使用下面的代码读取数据,但它选择的是负值。有没有办法读取过去六个月的正确数据?

代码语言:javascript
复制
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}/*")
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-01-10 14:33:07

您可以使用地址(字符串)列表作为.load()参数。首先,您可以向后创建6个月的列表(从今天开始):

代码语言:javascript
复制
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 

输出:

代码语言:javascript
复制
[(2022, 1), (2021, 12), (2021, 11), (2021, 10), (2021, 9), (2021, 8)]

然后将参数创建为

代码语言:javascript
复制
.load([f"rawdata/data/year={x}/month={y}" for x,y in y_m_list])
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70651156

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档