我具有类似蜂巢的分区样式,并使用以下分区键将它们以拼花格式存储在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的特定方法。
也许您可以尝试使用from_catalog选项检索数据并读取数据。尽管我认为U不需要提及分区键,因为它应该看到=表示它是一个分区。特别是考虑到胶水只是火花的包装材料