【问题标题】:excluding s3 folders when creating dynamic frame创建动态框架时排除 s3 文件夹
【发布时间】:2020-06-23 06:15:53
【问题描述】:
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,我们应该传递一个包含 Unix 样式 glob 模式的 JSON 列表的字符串。奇怪,当我使用

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

或文件后缀,它确实有效。当我尝试排除文件夹时,它不起作用并且仍然包含文件。

根据https://docs.aws.amazon.com/glue/latest/dg/define-crawler.html#crawler-data-stores-exclude

myfolder/**

预期的行为是匹配 myfolder 的所有子文件夹中的对象,例如 /myfolder/mysource/mydata 和 /myfolder/mysource/data

【问题讨论】:

    标签: python amazon-web-services apache-spark pyspark aws-glue


    【解决方案1】:

    在排除项中给出完整路径,如下所示

    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")
    

    【讨论】:

      猜你喜欢
      • 2023-01-09
      • 2017-03-31
      • 1970-01-01
      • 2011-01-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-07-15
      相关资源
      最近更新 更多