云端航班数据摄取与仪表盘创建指南
1. 确定下一个要摄取的月份
在云存储中,若存在如 201503.csv 这样的文件,我们可以通过以下代码确定下一个要摄取的月份:
import os
from datetime import datetime, timedelta
blobs = list(bucket.list_blobs(prefix='flights/raw/'))
files = [blob.name for blob in blobs if 'csv' in blob.name] # 仅考虑 csv 文件
lastfile = os.path.basename(files[-1]) # 例如 201503.csv
year = lastfile[:4]
month = lastfile[4:6]
dt = datetime(int(year), int(month), 15) # 每月 15 号
dt = dt + timedelta(30) # 总是进入下一个月
return '{}'.format(dt.year), '{:02d}'.format(dt.month)
通过将年份和月份设为可选参数,我们可以测试摄取程序查找下一个月并将其摄取到云存储的能力,示例代码如下:
if args.year is None or args.month is None:
year, month = next_month(args.bucket)
else:
yea
超级会员免费看
订阅专栏 解锁全文
1277

被折叠的 条评论
为什么被折叠?



