Хорошо, я нашел ответ на это. Хотя вы преобразуете файлы паркета в дельту, используя описанный выше подход, Delta будет искать правильную структуру каталогов с информацией о разделах вместе с именем столбца, упомянутого в предложении «Partitioned By».
Например, у меня есть папка с именем / Parent, внутри нее у меня есть структура каталогов с информацией о разделах, разделенные паркетные файлы хранятся еще на один уровень внутри разделенных папок, имена папок выглядят следующим образом
/ Parent / Subfolder = 0 / part -00000-62ef2efd-b88b-4dd1-ba1e-3a146e986212.c000.snappy.parquet /Parent/Subfolder=1/part-00000-fsgvfabv-b88b-4dd1-ba1e-3a146e986212.c000.snappy.parquet / родительский / дочерний /part-00000-fbfdfbfe-b88b-4dd1-ba1e-3a146e986212.c000.snappy.parquet /Parent/Subfolder=3/part-00000-gbgdbdtb-b88b-4dd1-ba1e-3a146e986212.c000.snappy.parquet
1006 * в этом случае подпапка - это разделы, созданные внутри родительского элемента.
CONVERT TO DELTA parquet. /Parent/
, разделенный (Subfolder INT)
, будет просто Сохраните эту структуру каталогов и преобразуйте все разделенные данные в дельту и сохраните разделенную информацию в metastore.
Резюме: - Эта команда предназначена только для использования уже созданных разделенных файлов Parquet. Чтобы создать раздел на одном файле Parquet, вам нужно выбрать другой маршрут, который я объясню вам позже, если вам интересно;)