исключая папки s3 при создании рамки Dynami c - PullRequest
1 голос
/ 11 марта 2020
orig_dyf = glueContext.create_dynamic_frame.from_options(
    's3',
    {
        "paths": [
            's3://bucket/sample_data/'
        ],
        "recurse" : True,
        "exclusions" :  "[\"temp/**\"]"
    },
    "json",
    transformation_ctx = "orig_dyf")

Я хочу исключить файлы из папки temp , но это не работает. В соответствии с https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-connect.html#aws -glue-Programming-etl-connect-s3 мы должны передать строку, содержащую JSON список Unix шаблонов стилей глобуса . Странно, что когда я использую

"[\"**.csv\"]"

или суффикс файла, это на самом деле работает. Когда я пытаюсь исключить папку, она не работает и по-прежнему включает файлы.

Согласно https://docs.aws.amazon.com/glue/latest/dg/define-crawler.html#crawler -data-stores-exclude

myfolder/**

ожидаемое поведение соответствует объектам во всех подпапках myfolder, таких как / myfolder / mysource / mydata и / myfolder / mysource / data

1 Ответ

0 голосов
/ 23 марта 2020

Укажите полный путь в исключениях, как показано ниже

orig_dyf = glueContext.create_dynamic_frame.from_options(
's3',
{
    "paths": [
        's3://bucket/sample_data/'
    ],
    "recurse" : True,
    "exclusions" :  "[\"s3://bucket/sample_data/temp/**\"]"
},
"json",
transformation_ctx = "orig_dyf")
...