AWS Glue - GlueContext: чтение разделенных данных из S3, добавление разделов в виде столбцов DynamicFrame - PullRequest
0 голосов
/ 26 февраля 2020

У меня есть некоторые данные, хранящиеся в корзине 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'
)

Используя обычный искровой код и класс DataFrame, он работает, и раздел включается в мою схему:

df = spark.read.parquet('s3://my-bucket/') .

Интересно, есть ли способ сделать это с помощью AWS специфичных для клея методов c или нет.

1 Ответ

0 голосов
/ 26 февраля 2020

возможно, вы могли бы попытаться сканировать данные и прочитать их, используя опцию from_catalog. Хотя я думаю, что U не нужно упоминать ключи разделов, так как он должен видеть, что = означает, что это раздел. Особенно учитывая, что клей - это просто оболочка вокруг свечи

...