aws glue закладка нескольких папок за одно задание не работает

У меня такой код работы:

sc = SparkContext()
glueContext = GlueContext(sc)
s3_paths = ['01', '02', '03'] #these paths are in the same folder and are partitioned under the source_path
s3_source_path = 'bucket_name/'
for sub_path in s3_paths :
    s3_path = s3_source_path + '/' sub_path
    args = getResolvedOptions(sys.argv, ['JOB_NAME'])
    job = Job(glueContext)
    job.init(args['JOB_NAME'], args)
    
    # get data from s3 path
    job_DyF = glueContext.create_dynamic_frame.from_options('s3', {"paths": [path], "recurse": True}, "json", format_options={"jsonPath": "$[*]"}, transformation_ctx = "job_DyF")
    
    # write dataset to s3 avro
    data_sink = glueContext.write_dynamic_frame.from_options(frame = df_verify_filtered, connection_type = "s3", connection_options = {"path": "s3://target", "partitionKeys": ["partition_0", "partition_1", "partition_2"]}, format = "avro", transformation_ctx = "data_sink")
    
    job.commit()

После успешного выполнения задания в некоторых подпутьях отсутствуют записи.

Когда я снова попытался запустить задание, он говорит no new file detected.

Поэтому я попытался запустить код с определенным sub_path, без for sub_path in pathsКак ни странно, проблема возникает, когда задание выполняется для sub_path #2:

это говорит no new file detected для sub_path '02',

хотя задание выполнялось только для 1-го sub_path '01' и только данные из 1-го sub_path были загружены в S3 avro.

Я не могу понять, что не так с тем, как я установил эту закладку, поэтому ваше понимание будет действительно признательно!. Заранее спасибо.

0 ответов

Другие вопросы по тегам