У меня есть работа с scala spark для записи в s3 в виде файла паркета. Пока это 6 миллиардов записей, и он будет расти с каждым днем. В соответствии с вариантом использования, наш API будет запрашивать паркет на основе идентификатора. Чтобы ускорить результаты запроса, я пишу паркет с разделами по id. Тем не менее, у нас есть 1330360 уникальных идентификаторов, поэтому мы создаем 1330360 файлов паркета во время записи, поэтому этап записи очень медленный, запись в течение последних 9 часов и работа продолжается.
output.write.mode("append").partitionBy("id").parquet("s3a://datalake/db/")
Есть ли в любом случае, я могу уменьшить количество разделов и все же сделать запрос на чтение быстрее? Или любой другой лучший способ справиться с этим сценарием? Спасибо.
РЕДАКТИРОВАТЬ: - id представляет собой целочисленный столбец со случайными числами.