Я загружаю набор данных в DynamicFrame, выполняю преобразование и затем записываю его обратно в S3:
datasink = glueContext.write_dynamic_frame.from_options(
frame = someDateFrame,
connection_type = "s3",
connection_options = {
"path": "s3://the-bucket/some-data-set"
},
format = "parquet"
)
В результате получается 12 файлов Parquet со средним размером около 3 МБ.
Прежде всего, я не понимаю, почему Glue / Spark по умолчанию не создает вместо этого один файл размером около 36 МБ, учитывая, что почти все программы-потребители (Presto / Athena, Spark) предпочитают размер файла около 100 МБа не куча маленьких файлов. Если у кого-то есть понимание, я был бы рад услышать об этом.
Но, практически говоря, мне интересно, возможно ли заставить Glue / Spark создавать большие файлы или, по крайней мере, большие файлы. Это возможно?