AWS Glue-GlueContext:从S3读取分区数据,将分区添加为DynamicFrame的列

问题描述 投票:0回答:1

我具有类似蜂巢的分区样式,并使用以下分区键将它们以拼花格式存储在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的特定方法。

pyspark aws-glue
1个回答
0
投票

也许您可以尝试使用from_catalog选项检索数据并读取数据。尽管我认为U不需要提及分区键,因为它应该看到=表示它是一个分区。特别是考虑到胶水只是火花的包装材料

© www.soinside.com 2019 - 2024. All rights reserved.