У меня есть файл в aws S3, в форматах CSV (~ 20 ГБ) и паркета (~ 4 ГБ). Этот файл проходит два разных типа процессов, первый процесс в Apache Spark, который берет этот файл и выполняет некоторую обработку и пытается разбить файл на несколько файлов, основываясь на нескольких бизнес-условиях, так что каждый отдельный файл разделения может быть обрабатывается параллельно следующим процессом, который находится в .Net Core.
Теперь задача, которую Spark пытается разделить на множество файлов, заключается в группировке существующих записей / строк (это не меняет никакого содержимого строки), чтобы она могла быть прочитана распределенной системой. Есть ли способ создать ссылку или что-то вместо того, чтобы скопировать данные в новый файл и использовать его? При дублировании одного и того же файла для группировки требуется время на запись.
Я попытался с помощью Athena создать каталог данных, который имеет две проблемы,
1. Афина не смогла прочитать более 1000 записей одновременно из моего второго процесса (.Net Core)
2. Кажется, что Афина выполняет сканирование полного файла каждый раз, когда я делаю запрос на группу данных, что влияет на производительность.
И группировка основана не только на значениях столбцов, поэтому я не смог использовать раздел!