You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用AWS Wrangler从单日期列自动生成S3 Parquet的Hive式年月日报分区

用AWS Wrangler基于单个日期列生成Hive风格分层分区目录

要实现你需要的年/月/日分层Hive分区结构,不需要给DataFrame新增列,直接利用AWS Wrangler的partition_cols参数支持的日期格式化语法就能搞定。

核心修改点

把原来的partition_cols=['date']替换成按日期字段拆分的格式化表达式:partition_cols=['date:year', 'date:month', 'date:day']。

完整代码示例

import awswrangler as wr
import pandas as pd

# 构造DataFrame,先把字符串日期转成datetime类型(关键,确保Wrangler能正确解析)
df = pd.DataFrame({
    'date': ['2022-08-01', '2022-08-02', '2022-08-03'],
    'col2': ['A', 'A', 'B']
})
df['date'] = pd.to_datetime(df['date'])

# 写入S3,指定分层分区规则
wr.s3.to_parquet(
    df=df,
    path='s3://bucket/prefix',
    dataset=True,
    partition_cols=['date:year', 'date:month', 'date:day'],
    database='default'
)

效果说明

运行这段代码后,S3上会生成你期望的Hive风格分层目录:

prefix
- year=2022
-- month=08
--- day=01
--- day=02
--- day=03

补充说明

  • 必须确保date列是pandas的datetime64类型,否则Wrangler无法识别并提取年/月/日字段。如果你的原始数据是字符串格式,一定要先做类型转换。
  • 除了year/month/day,还支持hour/minute等时间粒度的拆分,按需调整即可。

内容的提问来源于stack exchange,提问作者Ben L

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 04:57:22