【发布时间】:2021-04-14 15:07:01
【问题描述】:
我将数据存储在 S3 存储桶中,该存储桶使用“yyyy/MM/dd”格式来存储每个日期的文件,例如在此示例 S3a 路径中:s3a://mybucket/data/2018/07/03. 这些存储桶中的文件采用 json.gz 格式和我想每天将所有这些文件导入到 spark 数据框中。之后,我想通过 for 循环将这些 spark dfs 提供给一些书面代码:
for date in date_range:
s3a = 's3a://mybucket/data/{}/{}/{}/*.json.gz'.format(date.year, date.month, date.day)
df = spark.read.format('json').option("header", "true").load(s3a)
# Execute code here
为了读取数据,我尝试将date_range 格式化如下:
from datetime import datetime
import pandas as pd
def return_date_range(start_date, end_date):
return pd.date_range(start=start_date, end=end_date).to_pydatetime().tolist()
date_range = return_date_range(start_date='2018-03-06', end_date='2018-03-12')
date_range
[datetime.datetime(2018, 3, 6, 0, 0),
datetime.datetime(2018, 3, 7, 0, 0),
datetime.datetime(2018, 3, 8, 0, 0),
datetime.datetime(2018, 3, 9, 0, 0),
datetime.datetime(2018, 3, 10, 0, 0),
datetime.datetime(2018, 3, 11, 0, 0),
datetime.datetime(2018, 3, 12, 0, 0)]
问题是pydatetime() 返回没有“0”的日期和月份。如何确保我的代码返回带有 '0' 的值列表,如下所示:
[datetime.datetime(2018, 03, 06, 0, 0),
datetime.datetime(2018, 03, 07, 0, 0),
datetime.datetime(2018, 03, 08, 0, 0),
datetime.datetime(2018, 03, 09, 0, 0),
datetime.datetime(2018, 03, 10, 0, 0),
datetime.datetime(2018, 03, 11, 0, 0),
datetime.datetime(2018, 03, 12, 0, 0)]
【问题讨论】:
-
是的,我会删除它
标签: python pandas datetime bucket