У меня есть набор данных, имеющий около 2 миллиардов строк в формате паркета, который охватывает 200 файлов. Он занимает 17,4 ГБ на S3. Этот набор данных имеет около 45% повторяющихся строк. Я дедуплицировал набор данных с использованием «отдельной» функции в Spark и записал его в другое место на S3.
Я ожидал, что объем хранилища данных уменьшится вдвое. Вместо этого дедуплицированные данные заняли 34,4 ГБ (вдвое больше, чем дубликаты).
Я взял, чтобы проверить метаданные этих двух наборов данных. Я обнаружил, что существует разница в кодировке столбцов дублирующихся и дедуплицированных данных.
Разница в кодировках столбцов
Я хочу понять, как получить ожидаемое поведение уменьшения размера хранилища.
Сказав это, у меня есть еще несколько вопросов:
- Я также хочу понять, влияет ли эта аномалия на производительность каким-либо образом. В моем процессе я должен применить множество фильтров к этим столбцам и использовать функцию
distinct
, сохраняя при этом отфильтрованные данные. - Я видел в нескольких паркетных блогах онлайн, что кодировка для столбца только одна. В этом случае я вижу несколько кодировок столбцов. Это нормально?