【发布时间】:2020-02-26 11:50:54
【问题描述】:
我有一些数据以 parquet 格式存储在 S3 存储桶中,采用类似配置单元的分区样式,具有以下分区键:零售商 - 年 - 月 - 日。
例如
my-bucket/
retailer=a/
year=2020/
....
retailer=b/
year=2020/
month=2/
...
我想在 sagemaker 笔记本中读取所有这些数据,并且我希望将分区作为我的 DynamicFrame 的列,这样当我 df.printSchema() 时,它们就会被包含在内。
如果我使用 Glue 建议的方法,分区不会包含在我的架构中。这是我正在使用的代码:
df = glueContext.create_dynamic_frame.from_options(
connection_type='s3',
connection_options={
'paths': ['s3://my-bucket/'],
"partitionKeys": [
"retailer",
"year",
"month",
"day"
]
},
format='parquet'
)
通过使用普通的 spark 代码和 DataFrame 类,它可以工作,并且分区会包含在我的架构中:
df = spark.read.parquet('s3://my-bucket/').
我想知道是否有办法使用 AWS Glue 的特定方法来做到这一点。
【问题讨论】: