AWS Glue中的pyspark跳过错误的文件

时间:2020-03-23 02:58:55

标签: pyspark aws-glue

我在AWS Glue中使用pyspark读取ETL 100K S3文件,但是,我没有读取数十个文件的权限。

我使用了以下代码:

int Sum = 1;// if one is selected as default,the Sum = 1,if no selected,Sum = 0
int MaxCount = 2; //Maximum number which you could select
private void CheckBox_CheckedChanged(object sender, CheckedChangedEventArgs e)
    {
        var box = sender as CheckBox;
        if (box.IsChecked)
        {
            Sum++;
            if(Sum > MaxCount)
            {
                box.IsChecked = false;
            }
        }
        else
        {
            Sum--;
        }


    }

它说

datasource0 = glueContext.create_dynamic_frame_from_options("s3",
    {'paths': ["s3://mykkkk-test"],
    'recurse':True,
    'groupFiles': 'inPartition',
    'groupSize': '10485760'}, 
    format="json",
    transformation_ctx = "datasource0")
## @type: toDF
## @args: []
## @return: df
## @inputs: [frame = datasource0]
df = datasource0.toDF()

我没有权限阅读3333.json,然后整个作业停止了。

是否可以捕获异常并跳过文件,并让脚本继续处理其他文件?

1 个答案:

答案 0 :(得分:0)

不,您不能...这是因为spark假设我可以访问您提到的源文件夹中的所有数据文件。最好的选择是事先确定您有权访问的文件列表,将它们移到另一个文件夹,然后从那里读取数据。

或者尝试获取您有权访问的文件列表,然后循环单独准备每个文件