Я читал несколько вопросов по этой теме, а также несколько форумов, и во всех них, похоже, упоминается, что каждый из полученных .parquet файлов, выходящих из Spark, должен иметь размер 64 МБ или 1 ГБ, но все же можетЯ не думаю, какие сценарии относятся к каждому из этих размеров файлов, и причины, помимо HDFS, разделяют их на блоки по 64 МБ.
Мой текущий сценарий тестирования следующий:
dataset
.coalesce(n) # being 'n' 4 or 48 - reasons explained below.
.write
.mode(SaveMode.Append)
.partitionBy(CONSTANTS)
.option("basepath", outputPath)
.parquet(outputPath)
В настоящее время я обрабатываю от 2,5 до 3 ГБ ежедневных данных, которые будут разбиты и сохранены в ежедневные сегменты в год. Причины, по которым 'n' равно 4 или 48, просто для целей тестирования , так как я заранее знаю размер своего набора тестирования, я стараюсь получить число, максимально приближенное к 64 МБ или 1 ГБ.Я не реализовал код для буферизации необходимых данных до тех пор, пока не получу точный размер, который мне нужен до сохранения.
Поэтому мой вопрос здесь ...
Должен ли я взять размер так много весли я не планирую использовать HDFS и просто хранить и извлекать данные из S3?
А также, какой оптимальный размер для ежедневных наборов данных составляет около 10 ГБ максимум , если япланируете использовать HDFS для хранения моих полученных файлов .parquet?
Любой другой совет по оптимизации был бы очень признателен!